MAYBE Time: 2.749958 TRS: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} DP: DP: { a__isNatIList# V -> a__U31# a__isNatList V, a__isNatIList# V -> a__isNatList# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2), a__isNatIList# cons(V1, V2) -> a__isNat# V1, a__U41#(tt(), V2) -> a__U42# a__isNatIList V2, a__U41#(tt(), V2) -> a__isNatIList# V2, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2), a__isNatList# cons(V1, V2) -> a__isNat# V1, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2), a__isNatList# take(V1, V2) -> a__isNat# V1, a__U51#(tt(), V2) -> a__U52# a__isNatList V2, a__U51#(tt(), V2) -> a__isNatList# V2, a__U61#(tt(), V2) -> a__isNatIList# V2, a__U61#(tt(), V2) -> a__U62# a__isNatIList V2, a__U72#(tt(), L) -> a__length# mark L, a__U72#(tt(), L) -> mark# L, a__isNat# s V1 -> a__U21# a__isNat V1, a__isNat# s V1 -> a__isNat# V1, a__isNat# length V1 -> a__U11# a__isNatList V1, a__isNat# length V1 -> a__isNatList# V1, a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__U71#(tt(), L, N) -> a__isNat# N, a__length# cons(N, L) -> a__isNatList# L, a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N), mark# cons(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#(), mark# s X -> mark# X, mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2), mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# U11 X -> a__U11# mark X, mark# U11 X -> mark# X, mark# U21 X -> a__U21# mark X, mark# U21 X -> mark# X, mark# U31 X -> a__U31# mark X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2), mark# U41(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X, mark# U42 X -> mark# X, mark# isNatIList X -> a__isNatIList# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2), mark# U51(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X, mark# U52 X -> mark# X, mark# isNatList X -> a__isNatList# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2), mark# U61(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X, mark# U62 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3), mark# U71(X1, X2, X3) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2), mark# U72(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X, mark# U81 X -> mark# X, mark# U81 X -> a__U81# mark X, mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4), mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4), mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4), a__U92#(tt(), IL, M, N) -> a__isNat# N, a__U92#(tt(), IL, M, N) -> a__U93#(a__isNat N, IL, M, N), a__U91#(tt(), IL, M, N) -> a__isNat# M, a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N), a__U93#(tt(), IL, M, N) -> mark# N, a__take#(0(), IL) -> a__isNatIList# IL, a__take#(0(), IL) -> a__U81# a__isNatIList IL, a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__take#(s M, cons(N, IL)) -> a__U91#(a__isNatIList IL, IL, M, N)} TRS: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} EDG: { (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# take(V1, V2) -> a__isNat# V1) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2)) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# cons(V1, V2) -> a__isNat# V1) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2)) (mark# length X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# length X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# length X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# length X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# length X -> mark# X, mark# U81 X -> mark# X) (mark# length X -> mark# X, mark# isNat X -> a__isNat# X) (mark# length X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# length X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# length X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# length X -> mark# X, mark# U62 X -> mark# X) (mark# length X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# length X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# length X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# length X -> mark# X, mark# U52 X -> mark# X) (mark# length X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# length X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# length X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# length X -> mark# X, mark# U42 X -> mark# X) (mark# length X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# length X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# length X -> mark# X, mark# U31 X -> mark# X) (mark# length X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# length X -> mark# X, mark# U21 X -> mark# X) (mark# length X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# length X -> mark# X, mark# U11 X -> mark# X) (mark# length X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# length X -> mark# X, mark# length X -> mark# X) (mark# length X -> mark# X, mark# length X -> a__length# mark X) (mark# length X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# length X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# length X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# s X -> mark# X) (mark# length X -> mark# X, mark# zeros() -> a__zeros#()) (mark# length X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U21 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U21 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U21 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U21 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U21 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U21 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U21 X -> mark# X, mark# U81 X -> mark# X) (mark# U21 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U21 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U21 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U21 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U21 X -> mark# X, mark# U62 X -> mark# X) (mark# U21 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U21 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U21 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U21 X -> mark# X, mark# U52 X -> mark# X) (mark# U21 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U21 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U21 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U21 X -> mark# X, mark# U42 X -> mark# X) (mark# U21 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U21 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U21 X -> mark# X, mark# U31 X -> mark# X) (mark# U21 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U21 X -> mark# X, mark# U21 X -> mark# X) (mark# U21 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U21 X -> mark# X, mark# U11 X -> mark# X) (mark# U21 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U21 X -> mark# X, mark# length X -> mark# X) (mark# U21 X -> mark# X, mark# length X -> a__length# mark X) (mark# U21 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U21 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U21 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# s X -> mark# X) (mark# U21 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U21 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U42 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U42 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U42 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U42 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U42 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U42 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U42 X -> mark# X, mark# U81 X -> mark# X) (mark# U42 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U42 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U42 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U42 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U42 X -> mark# X, mark# U62 X -> mark# X) (mark# U42 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U42 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U42 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U42 X -> mark# X, mark# U52 X -> mark# X) (mark# U42 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U42 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U42 X -> mark# X, mark# U42 X -> mark# X) (mark# U42 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U42 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U42 X -> mark# X, mark# U31 X -> mark# X) (mark# U42 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U42 X -> mark# X, mark# U21 X -> mark# X) (mark# U42 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U42 X -> mark# X, mark# U11 X -> mark# X) (mark# U42 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U42 X -> mark# X, mark# length X -> mark# X) (mark# U42 X -> mark# X, mark# length X -> a__length# mark X) (mark# U42 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U42 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U42 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# s X -> mark# X) (mark# U42 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U42 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U52 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U52 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U52 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U52 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U52 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U52 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U52 X -> mark# X, mark# U81 X -> mark# X) (mark# U52 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U52 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U52 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U52 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U52 X -> mark# X, mark# U62 X -> mark# X) (mark# U52 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U52 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U52 X -> mark# X, mark# U52 X -> mark# X) (mark# U52 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U52 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U52 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U52 X -> mark# X, mark# U42 X -> mark# X) (mark# U52 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U52 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U52 X -> mark# X, mark# U31 X -> mark# X) (mark# U52 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U52 X -> mark# X, mark# U21 X -> mark# X) (mark# U52 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U52 X -> mark# X, mark# U11 X -> mark# X) (mark# U52 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U52 X -> mark# X, mark# length X -> mark# X) (mark# U52 X -> mark# X, mark# length X -> a__length# mark X) (mark# U52 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U52 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U52 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# s X -> mark# X) (mark# U52 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U52 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U62 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U62 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U62 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U62 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U62 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U62 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U62 X -> mark# X, mark# U81 X -> mark# X) (mark# U62 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U62 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U62 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U62 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U62 X -> mark# X, mark# U62 X -> mark# X) (mark# U62 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U62 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U62 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U62 X -> mark# X, mark# U52 X -> mark# X) (mark# U62 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U62 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U62 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U62 X -> mark# X, mark# U42 X -> mark# X) (mark# U62 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U62 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U62 X -> mark# X, mark# U31 X -> mark# X) (mark# U62 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U62 X -> mark# X, mark# U21 X -> mark# X) (mark# U62 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U62 X -> mark# X, mark# U11 X -> mark# X) (mark# U62 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U62 X -> mark# X, mark# length X -> mark# X) (mark# U62 X -> mark# X, mark# length X -> a__length# mark X) (mark# U62 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U62 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U62 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# s X -> mark# X) (mark# U62 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U62 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U81 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U81 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U81 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U81 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U81 X -> mark# X, mark# U81 X -> mark# X) (mark# U81 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U81 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U81 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U81 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U81 X -> mark# X, mark# U62 X -> mark# X) (mark# U81 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U81 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U81 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U81 X -> mark# X, mark# U52 X -> mark# X) (mark# U81 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U81 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U81 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U81 X -> mark# X, mark# U42 X -> mark# X) (mark# U81 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U81 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U81 X -> mark# X, mark# U31 X -> mark# X) (mark# U81 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U81 X -> mark# X, mark# U21 X -> mark# X) (mark# U81 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U81 X -> mark# X, mark# U11 X -> mark# X) (mark# U81 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U81 X -> mark# X, mark# length X -> mark# X) (mark# U81 X -> mark# X, mark# length X -> a__length# mark X) (mark# U81 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U81 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U81 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# s X -> mark# X) (mark# U81 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U81 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2), a__U51#(tt(), V2) -> a__isNatList# V2) (a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2), a__U51#(tt(), V2) -> a__U52# a__isNatList V2) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__isNat# V1) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2)) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# V -> a__isNatList# V) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# V -> a__U31# a__isNatList V) (mark# U41(X1, X2) -> a__U41#(mark X1, X2), a__U41#(tt(), V2) -> a__isNatIList# V2) (mark# U41(X1, X2) -> a__U41#(mark X1, X2), a__U41#(tt(), V2) -> a__U42# a__isNatIList V2) (mark# U61(X1, X2) -> a__U61#(mark X1, X2), a__U61#(tt(), V2) -> a__U62# a__isNatIList V2) (mark# U61(X1, X2) -> a__U61#(mark X1, X2), a__U61#(tt(), V2) -> a__isNatIList# V2) (a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__U72#(tt(), L) -> mark# L) (a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__U72#(tt(), L) -> a__length# mark L) (a__U92#(tt(), IL, M, N) -> a__isNat# N, a__isNat# length V1 -> a__isNatList# V1) (a__U92#(tt(), IL, M, N) -> a__isNat# N, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__U92#(tt(), IL, M, N) -> a__isNat# N, a__isNat# s V1 -> a__isNat# V1) (a__U92#(tt(), IL, M, N) -> a__isNat# N, a__isNat# s V1 -> a__U21# a__isNat V1) (mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3), a__U71#(tt(), L, N) -> a__isNat# N) (mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3), a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L)) (a__isNatIList# V -> a__isNatList# V, a__isNatList# take(V1, V2) -> a__isNat# V1) (a__isNatIList# V -> a__isNatList# V, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2)) (a__isNatIList# V -> a__isNatList# V, a__isNatList# cons(V1, V2) -> a__isNat# V1) (a__isNatIList# V -> a__isNatList# V, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2)) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(s M, cons(N, IL)) -> a__U91#(a__isNatIList IL, IL, M, N)) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(s M, cons(N, IL)) -> a__isNatIList# IL) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(0(), IL) -> a__U81# a__isNatIList IL) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(0(), IL) -> a__isNatIList# IL) (mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4), a__U92#(tt(), IL, M, N) -> a__U93#(a__isNat N, IL, M, N)) (mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4), a__U92#(tt(), IL, M, N) -> a__isNat# N) (a__U41#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__isNat# V1) (a__U41#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2)) (a__U41#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__isNatList# V) (a__U41#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__U31# a__isNatList V) (a__U61#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__isNat# V1) (a__U61#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2)) (a__U61#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__isNatList# V) (a__U61#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__U31# a__isNatList V) (mark# take(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# take(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# take(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# take(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# take(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# take(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# take(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# take(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# take(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# take(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# take(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# take(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# take(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U51(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U51(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U51(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U51(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U51(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U51(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U51(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U51(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U51(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U51(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U51(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U51(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U51(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U51(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U51(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U81 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U62 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U71(X1, X2, X3) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U52 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U71(X1, X2, X3) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U42 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U31 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U21 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U11 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# length X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# length X -> a__length# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U71(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U71(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# s X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U71(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# length X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# length X -> a__length# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# length X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# length X -> a__length# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N), a__U92#(tt(), IL, M, N) -> a__U93#(a__isNat N, IL, M, N)) (a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N), a__U92#(tt(), IL, M, N) -> a__isNat# N) (a__isNatIList# cons(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__isNatList# V1) (a__isNatIList# cons(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__isNatIList# cons(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__isNat# V1) (a__isNatIList# cons(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__U21# a__isNat V1) (a__isNatList# take(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__isNatList# V1) (a__isNatList# take(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__isNatList# take(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__isNat# V1) (a__isNatList# take(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__U21# a__isNat V1) (a__isNat# length V1 -> a__isNatList# V1, a__isNatList# take(V1, V2) -> a__isNat# V1) (a__isNat# length V1 -> a__isNatList# V1, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2)) (a__isNat# length V1 -> a__isNatList# V1, a__isNatList# cons(V1, V2) -> a__isNat# V1) (a__isNat# length V1 -> a__isNatList# V1, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2)) (a__isNat# s V1 -> a__isNat# V1, a__isNat# s V1 -> a__U21# a__isNat V1) (a__isNat# s V1 -> a__isNat# V1, a__isNat# s V1 -> a__isNat# V1) (a__isNat# s V1 -> a__isNat# V1, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__isNat# s V1 -> a__isNat# V1, a__isNat# length V1 -> a__isNatList# V1) (a__isNatList# cons(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__U21# a__isNat V1) (a__isNatList# cons(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__isNat# V1) (a__isNatList# cons(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__isNatList# cons(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__isNatList# V1) (a__take#(s M, cons(N, IL)) -> a__U91#(a__isNatIList IL, IL, M, N), a__U91#(tt(), IL, M, N) -> a__isNat# M) (a__take#(s M, cons(N, IL)) -> a__U91#(a__isNatIList IL, IL, M, N), a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N)) (a__U92#(tt(), IL, M, N) -> a__U93#(a__isNat N, IL, M, N), a__U93#(tt(), IL, M, N) -> mark# N) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# length X -> a__length# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# length X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U72(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U72(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U72(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U72(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U72(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U72(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U72(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U72(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U72(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U72(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U72(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U72(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U72(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U72(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U72(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U61(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U61(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U61(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U61(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U61(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U61(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U61(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U61(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U61(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U61(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U61(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U61(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U61(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U61(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U61(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U41(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U41(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U41(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U41(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U41(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U41(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U41(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U41(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U41(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U41(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U41(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U41(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U41(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U41(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U41(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# cons(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# cons(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# cons(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# cons(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# cons(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (a__U51#(tt(), V2) -> a__isNatList# V2, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2)) (a__U51#(tt(), V2) -> a__isNatList# V2, a__isNatList# cons(V1, V2) -> a__isNat# V1) (a__U51#(tt(), V2) -> a__isNatList# V2, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2)) (a__U51#(tt(), V2) -> a__isNatList# V2, a__isNatList# take(V1, V2) -> a__isNat# V1) (mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4), a__U93#(tt(), IL, M, N) -> mark# N) (mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4), a__U91#(tt(), IL, M, N) -> a__isNat# M) (mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4), a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N)) (a__U91#(tt(), IL, M, N) -> a__isNat# M, a__isNat# s V1 -> a__U21# a__isNat V1) (a__U91#(tt(), IL, M, N) -> a__isNat# M, a__isNat# s V1 -> a__isNat# V1) (a__U91#(tt(), IL, M, N) -> a__isNat# M, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__U91#(tt(), IL, M, N) -> a__isNat# M, a__isNat# length V1 -> a__isNatList# V1) (a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N), a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L)) (a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N), a__U71#(tt(), L, N) -> a__isNat# N) (mark# take(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# zeros() -> a__zeros#()) (mark# take(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X2, mark# length X -> a__length# mark X) (mark# take(X1, X2) -> mark# X2, mark# length X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U11 X -> a__U11# mark X) (mark# take(X1, X2) -> mark# X2, mark# U11 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U21 X -> a__U21# mark X) (mark# take(X1, X2) -> mark# X2, mark# U21 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U31 X -> a__U31# mark X) (mark# take(X1, X2) -> mark# X2, mark# U31 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U41(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U42 X -> a__U42# mark X) (mark# take(X1, X2) -> mark# X2, mark# U42 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# isNatIList X -> a__isNatIList# X) (mark# take(X1, X2) -> mark# X2, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U51(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U52 X -> a__U52# mark X) (mark# take(X1, X2) -> mark# X2, mark# U52 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# isNatList X -> a__isNatList# X) (mark# take(X1, X2) -> mark# X2, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U61(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U62 X -> a__U62# mark X) (mark# take(X1, X2) -> mark# X2, mark# U62 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# take(X1, X2) -> mark# X2, mark# U71(X1, X2, X3) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U72(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# isNat X -> a__isNat# X) (mark# take(X1, X2) -> mark# X2, mark# U81 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U81 X -> a__U81# mark X) (mark# take(X1, X2) -> mark# X2, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X2, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X2, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# zeros() -> a__zeros#()) (a__U93#(tt(), IL, M, N) -> mark# N, mark# s X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# take(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# take(X1, X2) -> mark# X2) (a__U93#(tt(), IL, M, N) -> mark# N, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# length X -> a__length# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# length X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U11 X -> a__U11# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U11 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U21 X -> a__U21# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U21 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U31 X -> a__U31# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U31 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U41(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U42 X -> a__U42# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U42 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# isNatIList X -> a__isNatIList# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U51(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U52 X -> a__U52# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U52 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# isNatList X -> a__isNatList# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U61(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U62 X -> a__U62# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U62 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U71(X1, X2, X3) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U72(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# isNat X -> a__isNat# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U81 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U81 X -> a__U81# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U91(X1, X2, X3, X4) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U92(X1, X2, X3, X4) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U93(X1, X2, X3, X4) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (a__U71#(tt(), L, N) -> a__isNat# N, a__isNat# s V1 -> a__U21# a__isNat V1) (a__U71#(tt(), L, N) -> a__isNat# N, a__isNat# s V1 -> a__isNat# V1) (a__U71#(tt(), L, N) -> a__isNat# N, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__U71#(tt(), L, N) -> a__isNat# N, a__isNat# length V1 -> a__isNatList# V1) (mark# U72(X1, X2) -> a__U72#(mark X1, X2), a__U72#(tt(), L) -> a__length# mark L) (mark# U72(X1, X2) -> a__U72#(mark X1, X2), a__U72#(tt(), L) -> mark# L) (mark# U51(X1, X2) -> a__U51#(mark X1, X2), a__U51#(tt(), V2) -> a__U52# a__isNatList V2) (mark# U51(X1, X2) -> a__U51#(mark X1, X2), a__U51#(tt(), V2) -> a__isNatList# V2) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# V -> a__U31# a__isNatList V) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# V -> a__isNatList# V) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2)) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__isNat# V1) (a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2), a__U61#(tt(), V2) -> a__isNatIList# V2) (a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2), a__U61#(tt(), V2) -> a__U62# a__isNatIList V2) (a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2), a__U41#(tt(), V2) -> a__U42# a__isNatIList V2) (a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2), a__U41#(tt(), V2) -> a__isNatIList# V2) (mark# isNat X -> a__isNat# X, a__isNat# s V1 -> a__U21# a__isNat V1) (mark# isNat X -> a__isNat# X, a__isNat# s V1 -> a__isNat# V1) (mark# isNat X -> a__isNat# X, a__isNat# length V1 -> a__U11# a__isNatList V1) (mark# isNat X -> a__isNat# X, a__isNat# length V1 -> a__isNatList# V1) (mark# isNatList X -> a__isNatList# X, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2)) (mark# isNatList X -> a__isNatList# X, a__isNatList# cons(V1, V2) -> a__isNat# V1) (mark# isNatList X -> a__isNatList# X, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2)) (mark# isNatList X -> a__isNatList# X, a__isNatList# take(V1, V2) -> a__isNat# V1) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# V -> a__U31# a__isNatList V) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# V -> a__isNatList# V) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2)) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# cons(V1, V2) -> a__isNat# V1) (mark# U31 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U31 X -> mark# X, mark# s X -> mark# X) (mark# U31 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U31 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U31 X -> mark# X, mark# length X -> a__length# mark X) (mark# U31 X -> mark# X, mark# length X -> mark# X) (mark# U31 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U31 X -> mark# X, mark# U11 X -> mark# X) (mark# U31 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U31 X -> mark# X, mark# U21 X -> mark# X) (mark# U31 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U31 X -> mark# X, mark# U31 X -> mark# X) (mark# U31 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U31 X -> mark# X, mark# U42 X -> mark# X) (mark# U31 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U31 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U31 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U31 X -> mark# X, mark# U52 X -> mark# X) (mark# U31 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U31 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U31 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U31 X -> mark# X, mark# U62 X -> mark# X) (mark# U31 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U31 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U31 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U31 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U31 X -> mark# X, mark# U81 X -> mark# X) (mark# U31 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U31 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U31 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U31 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U31 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U31 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U31 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U11 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U11 X -> mark# X, mark# s X -> mark# X) (mark# U11 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U11 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U11 X -> mark# X, mark# length X -> a__length# mark X) (mark# U11 X -> mark# X, mark# length X -> mark# X) (mark# U11 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U11 X -> mark# X, mark# U11 X -> mark# X) (mark# U11 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U11 X -> mark# X, mark# U21 X -> mark# X) (mark# U11 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U11 X -> mark# X, mark# U31 X -> mark# X) (mark# U11 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U11 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U11 X -> mark# X, mark# U42 X -> mark# X) (mark# U11 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U11 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U11 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U11 X -> mark# X, mark# U52 X -> mark# X) (mark# U11 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U11 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U11 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U11 X -> mark# X, mark# U62 X -> mark# X) (mark# U11 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U11 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U11 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U11 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U11 X -> mark# X, mark# U81 X -> mark# X) (mark# U11 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U11 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U11 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U11 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U11 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U11 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U11 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# zeros() -> a__zeros#()) (mark# s X -> mark# X, mark# s X -> mark# X) (mark# s X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# s X -> mark# X, mark# length X -> a__length# mark X) (mark# s X -> mark# X, mark# length X -> mark# X) (mark# s X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# s X -> mark# X, mark# U11 X -> mark# X) (mark# s X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# s X -> mark# X, mark# U21 X -> mark# X) (mark# s X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# s X -> mark# X, mark# U31 X -> mark# X) (mark# s X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# s X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# s X -> mark# X, mark# U42 X -> mark# X) (mark# s X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# s X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# s X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# s X -> mark# X, mark# U52 X -> mark# X) (mark# s X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# s X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# s X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# s X -> mark# X, mark# U62 X -> mark# X) (mark# s X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# s X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# s X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# s X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# isNat X -> a__isNat# X) (mark# s X -> mark# X, mark# U81 X -> mark# X) (mark# s X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# s X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# s X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# s X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# s X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (a__U72#(tt(), L) -> a__length# mark L, a__length# cons(N, L) -> a__isNatList# L) (a__U72#(tt(), L) -> a__length# mark L, a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N)) (mark# length X -> a__length# mark X, a__length# cons(N, L) -> a__isNatList# L) (mark# length X -> a__length# mark X, a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N)) (a__U72#(tt(), L) -> mark# L, mark# cons(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# zeros() -> a__zeros#()) (a__U72#(tt(), L) -> mark# L, mark# s X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# take(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# take(X1, X2) -> mark# X2) (a__U72#(tt(), L) -> mark# L, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__U72#(tt(), L) -> mark# L, mark# length X -> a__length# mark X) (a__U72#(tt(), L) -> mark# L, mark# length X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U11 X -> a__U11# mark X) (a__U72#(tt(), L) -> mark# L, mark# U11 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U21 X -> a__U21# mark X) (a__U72#(tt(), L) -> mark# L, mark# U21 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U31 X -> a__U31# mark X) (a__U72#(tt(), L) -> mark# L, mark# U31 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (a__U72#(tt(), L) -> mark# L, mark# U41(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U42 X -> a__U42# mark X) (a__U72#(tt(), L) -> mark# L, mark# U42 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# isNatIList X -> a__isNatIList# X) (a__U72#(tt(), L) -> mark# L, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (a__U72#(tt(), L) -> mark# L, mark# U51(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U52 X -> a__U52# mark X) (a__U72#(tt(), L) -> mark# L, mark# U52 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# isNatList X -> a__isNatList# X) (a__U72#(tt(), L) -> mark# L, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (a__U72#(tt(), L) -> mark# L, mark# U61(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U62 X -> a__U62# mark X) (a__U72#(tt(), L) -> mark# L, mark# U62 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (a__U72#(tt(), L) -> mark# L, mark# U71(X1, X2, X3) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (a__U72#(tt(), L) -> mark# L, mark# U72(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# isNat X -> a__isNat# X) (a__U72#(tt(), L) -> mark# L, mark# U81 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U81 X -> a__U81# mark X) (a__U72#(tt(), L) -> mark# L, mark# U91(X1, X2, X3, X4) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (a__U72#(tt(), L) -> mark# L, mark# U92(X1, X2, X3, X4) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (a__U72#(tt(), L) -> mark# L, mark# U93(X1, X2, X3, X4) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) } EDG: { (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# take(V1, V2) -> a__isNat# V1) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2)) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# cons(V1, V2) -> a__isNat# V1) (a__length# cons(N, L) -> a__isNatList# L, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2)) (mark# length X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# length X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# length X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# length X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# length X -> mark# X, mark# U81 X -> mark# X) (mark# length X -> mark# X, mark# isNat X -> a__isNat# X) (mark# length X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# length X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# length X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# length X -> mark# X, mark# U62 X -> mark# X) (mark# length X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# length X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# length X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# length X -> mark# X, mark# U52 X -> mark# X) (mark# length X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# length X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# length X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# length X -> mark# X, mark# U42 X -> mark# X) (mark# length X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# length X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# length X -> mark# X, mark# U31 X -> mark# X) (mark# length X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# length X -> mark# X, mark# U21 X -> mark# X) (mark# length X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# length X -> mark# X, mark# U11 X -> mark# X) (mark# length X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# length X -> mark# X, mark# length X -> mark# X) (mark# length X -> mark# X, mark# length X -> a__length# mark X) (mark# length X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# length X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# length X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# s X -> mark# X) (mark# length X -> mark# X, mark# zeros() -> a__zeros#()) (mark# length X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U21 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U21 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U21 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U21 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U21 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U21 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U21 X -> mark# X, mark# U81 X -> mark# X) (mark# U21 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U21 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U21 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U21 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U21 X -> mark# X, mark# U62 X -> mark# X) (mark# U21 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U21 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U21 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U21 X -> mark# X, mark# U52 X -> mark# X) (mark# U21 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U21 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U21 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U21 X -> mark# X, mark# U42 X -> mark# X) (mark# U21 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U21 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U21 X -> mark# X, mark# U31 X -> mark# X) (mark# U21 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U21 X -> mark# X, mark# U21 X -> mark# X) (mark# U21 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U21 X -> mark# X, mark# U11 X -> mark# X) (mark# U21 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U21 X -> mark# X, mark# length X -> mark# X) (mark# U21 X -> mark# X, mark# length X -> a__length# mark X) (mark# U21 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U21 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U21 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U21 X -> mark# X, mark# s X -> mark# X) (mark# U21 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U21 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U42 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U42 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U42 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U42 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U42 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U42 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U42 X -> mark# X, mark# U81 X -> mark# X) (mark# U42 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U42 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U42 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U42 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U42 X -> mark# X, mark# U62 X -> mark# X) (mark# U42 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U42 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U42 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U42 X -> mark# X, mark# U52 X -> mark# X) (mark# U42 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U42 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U42 X -> mark# X, mark# U42 X -> mark# X) (mark# U42 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U42 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U42 X -> mark# X, mark# U31 X -> mark# X) (mark# U42 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U42 X -> mark# X, mark# U21 X -> mark# X) (mark# U42 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U42 X -> mark# X, mark# U11 X -> mark# X) (mark# U42 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U42 X -> mark# X, mark# length X -> mark# X) (mark# U42 X -> mark# X, mark# length X -> a__length# mark X) (mark# U42 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U42 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U42 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U42 X -> mark# X, mark# s X -> mark# X) (mark# U42 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U42 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U52 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U52 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U52 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U52 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U52 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U52 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U52 X -> mark# X, mark# U81 X -> mark# X) (mark# U52 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U52 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U52 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U52 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U52 X -> mark# X, mark# U62 X -> mark# X) (mark# U52 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U52 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U52 X -> mark# X, mark# U52 X -> mark# X) (mark# U52 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U52 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U52 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U52 X -> mark# X, mark# U42 X -> mark# X) (mark# U52 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U52 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U52 X -> mark# X, mark# U31 X -> mark# X) (mark# U52 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U52 X -> mark# X, mark# U21 X -> mark# X) (mark# U52 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U52 X -> mark# X, mark# U11 X -> mark# X) (mark# U52 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U52 X -> mark# X, mark# length X -> mark# X) (mark# U52 X -> mark# X, mark# length X -> a__length# mark X) (mark# U52 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U52 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U52 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U52 X -> mark# X, mark# s X -> mark# X) (mark# U52 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U52 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U62 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U62 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U62 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U62 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U62 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U62 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U62 X -> mark# X, mark# U81 X -> mark# X) (mark# U62 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U62 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U62 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U62 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U62 X -> mark# X, mark# U62 X -> mark# X) (mark# U62 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U62 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U62 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U62 X -> mark# X, mark# U52 X -> mark# X) (mark# U62 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U62 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U62 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U62 X -> mark# X, mark# U42 X -> mark# X) (mark# U62 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U62 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U62 X -> mark# X, mark# U31 X -> mark# X) (mark# U62 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U62 X -> mark# X, mark# U21 X -> mark# X) (mark# U62 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U62 X -> mark# X, mark# U11 X -> mark# X) (mark# U62 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U62 X -> mark# X, mark# length X -> mark# X) (mark# U62 X -> mark# X, mark# length X -> a__length# mark X) (mark# U62 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U62 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U62 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U62 X -> mark# X, mark# s X -> mark# X) (mark# U62 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U62 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U81 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U81 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U81 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U81 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U81 X -> mark# X, mark# U81 X -> mark# X) (mark# U81 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U81 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U81 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U81 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U81 X -> mark# X, mark# U62 X -> mark# X) (mark# U81 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U81 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U81 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U81 X -> mark# X, mark# U52 X -> mark# X) (mark# U81 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U81 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U81 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U81 X -> mark# X, mark# U42 X -> mark# X) (mark# U81 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U81 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U81 X -> mark# X, mark# U31 X -> mark# X) (mark# U81 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U81 X -> mark# X, mark# U21 X -> mark# X) (mark# U81 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U81 X -> mark# X, mark# U11 X -> mark# X) (mark# U81 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U81 X -> mark# X, mark# length X -> mark# X) (mark# U81 X -> mark# X, mark# length X -> a__length# mark X) (mark# U81 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U81 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U81 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U81 X -> mark# X, mark# s X -> mark# X) (mark# U81 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U81 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2), a__U51#(tt(), V2) -> a__isNatList# V2) (a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2), a__U51#(tt(), V2) -> a__U52# a__isNatList V2) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__isNat# V1) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2)) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# V -> a__isNatList# V) (a__take#(0(), IL) -> a__isNatIList# IL, a__isNatIList# V -> a__U31# a__isNatList V) (mark# U41(X1, X2) -> a__U41#(mark X1, X2), a__U41#(tt(), V2) -> a__isNatIList# V2) (mark# U41(X1, X2) -> a__U41#(mark X1, X2), a__U41#(tt(), V2) -> a__U42# a__isNatIList V2) (mark# U61(X1, X2) -> a__U61#(mark X1, X2), a__U61#(tt(), V2) -> a__U62# a__isNatIList V2) (mark# U61(X1, X2) -> a__U61#(mark X1, X2), a__U61#(tt(), V2) -> a__isNatIList# V2) (a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__U72#(tt(), L) -> mark# L) (a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__U72#(tt(), L) -> a__length# mark L) (a__U92#(tt(), IL, M, N) -> a__isNat# N, a__isNat# length V1 -> a__isNatList# V1) (a__U92#(tt(), IL, M, N) -> a__isNat# N, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__U92#(tt(), IL, M, N) -> a__isNat# N, a__isNat# s V1 -> a__isNat# V1) (a__U92#(tt(), IL, M, N) -> a__isNat# N, a__isNat# s V1 -> a__U21# a__isNat V1) (mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3), a__U71#(tt(), L, N) -> a__isNat# N) (mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3), a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L)) (a__isNatIList# V -> a__isNatList# V, a__isNatList# take(V1, V2) -> a__isNat# V1) (a__isNatIList# V -> a__isNatList# V, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2)) (a__isNatIList# V -> a__isNatList# V, a__isNatList# cons(V1, V2) -> a__isNat# V1) (a__isNatIList# V -> a__isNatList# V, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2)) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(s M, cons(N, IL)) -> a__U91#(a__isNatIList IL, IL, M, N)) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(s M, cons(N, IL)) -> a__isNatIList# IL) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(0(), IL) -> a__U81# a__isNatIList IL) (mark# take(X1, X2) -> a__take#(mark X1, mark X2), a__take#(0(), IL) -> a__isNatIList# IL) (mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4), a__U92#(tt(), IL, M, N) -> a__U93#(a__isNat N, IL, M, N)) (mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4), a__U92#(tt(), IL, M, N) -> a__isNat# N) (a__U41#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__isNat# V1) (a__U41#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2)) (a__U41#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__isNatList# V) (a__U41#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__U31# a__isNatList V) (a__U61#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__isNat# V1) (a__U61#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2)) (a__U61#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__isNatList# V) (a__U61#(tt(), V2) -> a__isNatIList# V2, a__isNatIList# V -> a__U31# a__isNatList V) (mark# take(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# take(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# take(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# take(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# take(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# take(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# take(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# take(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# take(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# take(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# take(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# take(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# take(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U51(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U51(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U51(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U51(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U51(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U51(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U51(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U51(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U51(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U51(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U51(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U51(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U51(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U51(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U51(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U51(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U51(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U51(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U81 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U62 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U71(X1, X2, X3) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U52 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U71(X1, X2, X3) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U42 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U71(X1, X2, X3) -> mark# X1, mark# U31 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U21 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U11 X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# length X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# length X -> a__length# mark X) (mark# U71(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U71(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U71(X1, X2, X3) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U71(X1, X2, X3) -> mark# X1, mark# s X -> mark# X) (mark# U71(X1, X2, X3) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U71(X1, X2, X3) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# length X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# length X -> a__length# mark X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U91(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# length X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# length X -> a__length# mark X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U93(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N), a__U92#(tt(), IL, M, N) -> a__U93#(a__isNat N, IL, M, N)) (a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N), a__U92#(tt(), IL, M, N) -> a__isNat# N) (a__isNatIList# cons(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__isNatList# V1) (a__isNatIList# cons(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__isNatIList# cons(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__isNat# V1) (a__isNatIList# cons(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__U21# a__isNat V1) (a__isNatList# take(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__isNatList# V1) (a__isNatList# take(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__isNatList# take(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__isNat# V1) (a__isNatList# take(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__U21# a__isNat V1) (a__isNat# length V1 -> a__isNatList# V1, a__isNatList# take(V1, V2) -> a__isNat# V1) (a__isNat# length V1 -> a__isNatList# V1, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2)) (a__isNat# length V1 -> a__isNatList# V1, a__isNatList# cons(V1, V2) -> a__isNat# V1) (a__isNat# length V1 -> a__isNatList# V1, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2)) (a__isNat# s V1 -> a__isNat# V1, a__isNat# s V1 -> a__U21# a__isNat V1) (a__isNat# s V1 -> a__isNat# V1, a__isNat# s V1 -> a__isNat# V1) (a__isNat# s V1 -> a__isNat# V1, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__isNat# s V1 -> a__isNat# V1, a__isNat# length V1 -> a__isNatList# V1) (a__isNatList# cons(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__U21# a__isNat V1) (a__isNatList# cons(V1, V2) -> a__isNat# V1, a__isNat# s V1 -> a__isNat# V1) (a__isNatList# cons(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__isNatList# cons(V1, V2) -> a__isNat# V1, a__isNat# length V1 -> a__isNatList# V1) (a__take#(s M, cons(N, IL)) -> a__U91#(a__isNatIList IL, IL, M, N), a__U91#(tt(), IL, M, N) -> a__isNat# M) (a__take#(s M, cons(N, IL)) -> a__U91#(a__isNatIList IL, IL, M, N), a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N)) (a__U92#(tt(), IL, M, N) -> a__U93#(a__isNat N, IL, M, N), a__U93#(tt(), IL, M, N) -> mark# N) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# length X -> a__length# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# length X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U11 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U21 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U31 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U42 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U52 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U62 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> mark# X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U72(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U72(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U72(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U72(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U72(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U72(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U72(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U72(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U72(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U72(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U72(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U72(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U72(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U72(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U72(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U72(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U72(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U72(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U61(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U61(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U61(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U61(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U61(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U61(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U61(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U61(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U61(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U61(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U61(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U61(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U61(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U61(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U61(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U61(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U61(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U61(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U41(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# U41(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U41(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U41(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# U41(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U41(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# U41(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U41(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# U41(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U41(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U41(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U41(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# U41(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# U41(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# U41(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U41(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U41(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U41(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# zeros() -> a__zeros#()) (mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# length X -> a__length# mark X) (mark# cons(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U11 X -> a__U11# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U11 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U21 X -> a__U21# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U21 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U31 X -> a__U31# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U31 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U41(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U42 X -> a__U42# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U42 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# isNatIList X -> a__isNatIList# X) (mark# cons(X1, X2) -> mark# X1, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U51(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U52 X -> a__U52# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U52 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# isNatList X -> a__isNatList# X) (mark# cons(X1, X2) -> mark# X1, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U61(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U62 X -> a__U62# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U62 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# cons(X1, X2) -> mark# X1, mark# U71(X1, X2, X3) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U72(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# isNat X -> a__isNat# X) (mark# cons(X1, X2) -> mark# X1, mark# U81 X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U81 X -> a__U81# mark X) (mark# cons(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (a__U51#(tt(), V2) -> a__isNatList# V2, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2)) (a__U51#(tt(), V2) -> a__isNatList# V2, a__isNatList# cons(V1, V2) -> a__isNat# V1) (a__U51#(tt(), V2) -> a__isNatList# V2, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2)) (a__U51#(tt(), V2) -> a__isNatList# V2, a__isNatList# take(V1, V2) -> a__isNat# V1) (mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4), a__U93#(tt(), IL, M, N) -> mark# N) (mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4), a__U91#(tt(), IL, M, N) -> a__isNat# M) (mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4), a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N)) (a__U91#(tt(), IL, M, N) -> a__isNat# M, a__isNat# s V1 -> a__U21# a__isNat V1) (a__U91#(tt(), IL, M, N) -> a__isNat# M, a__isNat# s V1 -> a__isNat# V1) (a__U91#(tt(), IL, M, N) -> a__isNat# M, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__U91#(tt(), IL, M, N) -> a__isNat# M, a__isNat# length V1 -> a__isNatList# V1) (a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N), a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L)) (a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N), a__U71#(tt(), L, N) -> a__isNat# N) (mark# take(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# zeros() -> a__zeros#()) (mark# take(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> mark# X2) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X2, mark# length X -> a__length# mark X) (mark# take(X1, X2) -> mark# X2, mark# length X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U11 X -> a__U11# mark X) (mark# take(X1, X2) -> mark# X2, mark# U11 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U21 X -> a__U21# mark X) (mark# take(X1, X2) -> mark# X2, mark# U21 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U31 X -> a__U31# mark X) (mark# take(X1, X2) -> mark# X2, mark# U31 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U41(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U42 X -> a__U42# mark X) (mark# take(X1, X2) -> mark# X2, mark# U42 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# isNatIList X -> a__isNatIList# X) (mark# take(X1, X2) -> mark# X2, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U51(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U52 X -> a__U52# mark X) (mark# take(X1, X2) -> mark# X2, mark# U52 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# isNatList X -> a__isNatList# X) (mark# take(X1, X2) -> mark# X2, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U61(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U62 X -> a__U62# mark X) (mark# take(X1, X2) -> mark# X2, mark# U62 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# take(X1, X2) -> mark# X2, mark# U71(X1, X2, X3) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U72(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# isNat X -> a__isNat# X) (mark# take(X1, X2) -> mark# X2, mark# U81 X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# U81 X -> a__U81# mark X) (mark# take(X1, X2) -> mark# X2, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X2, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X2, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# cons(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# zeros() -> a__zeros#()) (a__U93#(tt(), IL, M, N) -> mark# N, mark# s X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# take(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# take(X1, X2) -> mark# X2) (a__U93#(tt(), IL, M, N) -> mark# N, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# length X -> a__length# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# length X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U11 X -> a__U11# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U11 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U21 X -> a__U21# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U21 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U31 X -> a__U31# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U31 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U41(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U42 X -> a__U42# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U42 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# isNatIList X -> a__isNatIList# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U51(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U52 X -> a__U52# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U52 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# isNatList X -> a__isNatList# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U61(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U62 X -> a__U62# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U62 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U71(X1, X2, X3) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U72(X1, X2) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# isNat X -> a__isNat# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U81 X -> mark# X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U81 X -> a__U81# mark X) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U91(X1, X2, X3, X4) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U92(X1, X2, X3, X4) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U93(X1, X2, X3, X4) -> mark# X1) (a__U93#(tt(), IL, M, N) -> mark# N, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (a__U71#(tt(), L, N) -> a__isNat# N, a__isNat# s V1 -> a__U21# a__isNat V1) (a__U71#(tt(), L, N) -> a__isNat# N, a__isNat# s V1 -> a__isNat# V1) (a__U71#(tt(), L, N) -> a__isNat# N, a__isNat# length V1 -> a__U11# a__isNatList V1) (a__U71#(tt(), L, N) -> a__isNat# N, a__isNat# length V1 -> a__isNatList# V1) (mark# U72(X1, X2) -> a__U72#(mark X1, X2), a__U72#(tt(), L) -> a__length# mark L) (mark# U72(X1, X2) -> a__U72#(mark X1, X2), a__U72#(tt(), L) -> mark# L) (mark# U51(X1, X2) -> a__U51#(mark X1, X2), a__U51#(tt(), V2) -> a__U52# a__isNatList V2) (mark# U51(X1, X2) -> a__U51#(mark X1, X2), a__U51#(tt(), V2) -> a__isNatList# V2) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# V -> a__U31# a__isNatList V) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# V -> a__isNatList# V) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2)) (a__take#(s M, cons(N, IL)) -> a__isNatIList# IL, a__isNatIList# cons(V1, V2) -> a__isNat# V1) (a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2), a__U61#(tt(), V2) -> a__isNatIList# V2) (a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2), a__U61#(tt(), V2) -> a__U62# a__isNatIList V2) (a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2), a__U41#(tt(), V2) -> a__U42# a__isNatIList V2) (a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2), a__U41#(tt(), V2) -> a__isNatIList# V2) (mark# isNat X -> a__isNat# X, a__isNat# s V1 -> a__U21# a__isNat V1) (mark# isNat X -> a__isNat# X, a__isNat# s V1 -> a__isNat# V1) (mark# isNat X -> a__isNat# X, a__isNat# length V1 -> a__U11# a__isNatList V1) (mark# isNat X -> a__isNat# X, a__isNat# length V1 -> a__isNatList# V1) (mark# isNatList X -> a__isNatList# X, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2)) (mark# isNatList X -> a__isNatList# X, a__isNatList# cons(V1, V2) -> a__isNat# V1) (mark# isNatList X -> a__isNatList# X, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2)) (mark# isNatList X -> a__isNatList# X, a__isNatList# take(V1, V2) -> a__isNat# V1) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# V -> a__U31# a__isNatList V) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# V -> a__isNatList# V) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2)) (mark# isNatIList X -> a__isNatIList# X, a__isNatIList# cons(V1, V2) -> a__isNat# V1) (mark# U31 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U31 X -> mark# X, mark# s X -> mark# X) (mark# U31 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U31 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U31 X -> mark# X, mark# length X -> a__length# mark X) (mark# U31 X -> mark# X, mark# length X -> mark# X) (mark# U31 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U31 X -> mark# X, mark# U11 X -> mark# X) (mark# U31 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U31 X -> mark# X, mark# U21 X -> mark# X) (mark# U31 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U31 X -> mark# X, mark# U31 X -> mark# X) (mark# U31 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U31 X -> mark# X, mark# U42 X -> mark# X) (mark# U31 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U31 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U31 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U31 X -> mark# X, mark# U52 X -> mark# X) (mark# U31 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U31 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U31 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U31 X -> mark# X, mark# U62 X -> mark# X) (mark# U31 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U31 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U31 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U31 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U31 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U31 X -> mark# X, mark# U81 X -> mark# X) (mark# U31 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U31 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U31 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U31 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U31 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U31 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U31 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# U11 X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# zeros() -> a__zeros#()) (mark# U11 X -> mark# X, mark# s X -> mark# X) (mark# U11 X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# U11 X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# U11 X -> mark# X, mark# length X -> a__length# mark X) (mark# U11 X -> mark# X, mark# length X -> mark# X) (mark# U11 X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# U11 X -> mark# X, mark# U11 X -> mark# X) (mark# U11 X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# U11 X -> mark# X, mark# U21 X -> mark# X) (mark# U11 X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# U11 X -> mark# X, mark# U31 X -> mark# X) (mark# U11 X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# U11 X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# U11 X -> mark# X, mark# U42 X -> mark# X) (mark# U11 X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# U11 X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# U11 X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# U11 X -> mark# X, mark# U52 X -> mark# X) (mark# U11 X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# U11 X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# U11 X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# U11 X -> mark# X, mark# U62 X -> mark# X) (mark# U11 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# U11 X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# U11 X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# U11 X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# U11 X -> mark# X, mark# isNat X -> a__isNat# X) (mark# U11 X -> mark# X, mark# U81 X -> mark# X) (mark# U11 X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# U11 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# U11 X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# U11 X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# U11 X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# U11 X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# U11 X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# zeros() -> a__zeros#()) (mark# s X -> mark# X, mark# s X -> mark# X) (mark# s X -> mark# X, mark# take(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# take(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (mark# s X -> mark# X, mark# length X -> a__length# mark X) (mark# s X -> mark# X, mark# length X -> mark# X) (mark# s X -> mark# X, mark# U11 X -> a__U11# mark X) (mark# s X -> mark# X, mark# U11 X -> mark# X) (mark# s X -> mark# X, mark# U21 X -> a__U21# mark X) (mark# s X -> mark# X, mark# U21 X -> mark# X) (mark# s X -> mark# X, mark# U31 X -> a__U31# mark X) (mark# s X -> mark# X, mark# U31 X -> mark# X) (mark# s X -> mark# X, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (mark# s X -> mark# X, mark# U41(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U42 X -> a__U42# mark X) (mark# s X -> mark# X, mark# U42 X -> mark# X) (mark# s X -> mark# X, mark# isNatIList X -> a__isNatIList# X) (mark# s X -> mark# X, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (mark# s X -> mark# X, mark# U51(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U52 X -> a__U52# mark X) (mark# s X -> mark# X, mark# U52 X -> mark# X) (mark# s X -> mark# X, mark# isNatList X -> a__isNatList# X) (mark# s X -> mark# X, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (mark# s X -> mark# X, mark# U61(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U62 X -> a__U62# mark X) (mark# s X -> mark# X, mark# U62 X -> mark# X) (mark# s X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (mark# s X -> mark# X, mark# U71(X1, X2, X3) -> mark# X1) (mark# s X -> mark# X, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (mark# s X -> mark# X, mark# U72(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# isNat X -> a__isNat# X) (mark# s X -> mark# X, mark# U81 X -> mark# X) (mark# s X -> mark# X, mark# U81 X -> a__U81# mark X) (mark# s X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1) (mark# s X -> mark# X, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# U92(X1, X2, X3, X4) -> mark# X1) (mark# s X -> mark# X, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# U93(X1, X2, X3, X4) -> mark# X1) (mark# s X -> mark# X, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) (a__U72#(tt(), L) -> a__length# mark L, a__length# cons(N, L) -> a__isNatList# L) (a__U72#(tt(), L) -> a__length# mark L, a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N)) (mark# length X -> a__length# mark X, a__length# cons(N, L) -> a__isNatList# L) (mark# length X -> a__length# mark X, a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N)) (a__U72#(tt(), L) -> mark# L, mark# cons(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# zeros() -> a__zeros#()) (a__U72#(tt(), L) -> mark# L, mark# s X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# take(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# take(X1, X2) -> mark# X2) (a__U72#(tt(), L) -> mark# L, mark# take(X1, X2) -> a__take#(mark X1, mark X2)) (a__U72#(tt(), L) -> mark# L, mark# length X -> a__length# mark X) (a__U72#(tt(), L) -> mark# L, mark# length X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U11 X -> a__U11# mark X) (a__U72#(tt(), L) -> mark# L, mark# U11 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U21 X -> a__U21# mark X) (a__U72#(tt(), L) -> mark# L, mark# U21 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U31 X -> a__U31# mark X) (a__U72#(tt(), L) -> mark# L, mark# U31 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U41(X1, X2) -> a__U41#(mark X1, X2)) (a__U72#(tt(), L) -> mark# L, mark# U41(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U42 X -> a__U42# mark X) (a__U72#(tt(), L) -> mark# L, mark# U42 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# isNatIList X -> a__isNatIList# X) (a__U72#(tt(), L) -> mark# L, mark# U51(X1, X2) -> a__U51#(mark X1, X2)) (a__U72#(tt(), L) -> mark# L, mark# U51(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U52 X -> a__U52# mark X) (a__U72#(tt(), L) -> mark# L, mark# U52 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# isNatList X -> a__isNatList# X) (a__U72#(tt(), L) -> mark# L, mark# U61(X1, X2) -> a__U61#(mark X1, X2)) (a__U72#(tt(), L) -> mark# L, mark# U61(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U62 X -> a__U62# mark X) (a__U72#(tt(), L) -> mark# L, mark# U62 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3)) (a__U72#(tt(), L) -> mark# L, mark# U71(X1, X2, X3) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U72(X1, X2) -> a__U72#(mark X1, X2)) (a__U72#(tt(), L) -> mark# L, mark# U72(X1, X2) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# isNat X -> a__isNat# X) (a__U72#(tt(), L) -> mark# L, mark# U81 X -> mark# X) (a__U72#(tt(), L) -> mark# L, mark# U81 X -> a__U81# mark X) (a__U72#(tt(), L) -> mark# L, mark# U91(X1, X2, X3, X4) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4)) (a__U72#(tt(), L) -> mark# L, mark# U92(X1, X2, X3, X4) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4)) (a__U72#(tt(), L) -> mark# L, mark# U93(X1, X2, X3, X4) -> mark# X1) (a__U72#(tt(), L) -> mark# L, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4)) } STATUS: arrows: 0.815194 SCCS (2): Scc: { a__U72#(tt(), L) -> a__length# mark L, a__U72#(tt(), L) -> mark# L, a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2), mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1, mark# U62 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3), mark# U71(X1, X2, X3) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2), mark# U72(X1, X2) -> mark# X1, mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4), mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4), mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4), a__U92#(tt(), IL, M, N) -> a__U93#(a__isNat N, IL, M, N), a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N), a__U93#(tt(), IL, M, N) -> mark# N, a__take#(s M, cons(N, IL)) -> a__U91#(a__isNatIList IL, IL, M, N)} Scc: { a__isNatIList# V -> a__isNatList# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2), a__isNatIList# cons(V1, V2) -> a__isNat# V1, a__U41#(tt(), V2) -> a__isNatIList# V2, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2), a__isNatList# cons(V1, V2) -> a__isNat# V1, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2), a__isNatList# take(V1, V2) -> a__isNat# V1, a__U51#(tt(), V2) -> a__isNatList# V2, a__U61#(tt(), V2) -> a__isNatIList# V2, a__isNat# s V1 -> a__isNat# V1, a__isNat# length V1 -> a__isNatList# V1} SCC (35): Strict: { a__U72#(tt(), L) -> a__length# mark L, a__U72#(tt(), L) -> mark# L, a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> a__take#(mark X1, mark X2), mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1, mark# U62 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3), mark# U71(X1, X2, X3) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2), mark# U72(X1, X2) -> mark# X1, mark# U81 X -> mark# X, mark# U91(X1, X2, X3, X4) -> mark# X1, mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4), mark# U92(X1, X2, X3, X4) -> mark# X1, mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4), mark# U93(X1, X2, X3, X4) -> mark# X1, mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4), a__U92#(tt(), IL, M, N) -> a__U93#(a__isNat N, IL, M, N), a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N), a__U93#(tt(), IL, M, N) -> mark# N, a__take#(s M, cons(N, IL)) -> a__U91#(a__isNatIList IL, IL, M, N)} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [a__U91](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [a__U93](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U91](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U92](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U93](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [a__U71](x0, x1, x2) = x0 + x1, [U71](x0, x1, x2) = x0 + x1, [cons](x0, x1) = x0 + x1, [a__U41](x0, x1) = x0, [a__U51](x0, x1) = x0, [a__U61](x0, x1) = x0, [a__U72](x0, x1) = x0 + x1, [take](x0, x1) = x0 + x1 + 1, [a__take](x0, x1) = x0 + x1 + 1, [U41](x0, x1) = x0, [U51](x0, x1) = x0, [U61](x0, x1) = x0, [U72](x0, x1) = x0 + x1, [a__U11](x0) = x0, [a__U21](x0) = x0, [a__U31](x0) = x0, [a__U42](x0) = x0, [a__isNatIList](x0) = 0, [a__U52](x0) = x0, [a__isNatList](x0) = 0, [a__U62](x0) = x0, [a__isNat](x0) = 0, [s](x0) = x0, [a__length](x0) = x0, [mark](x0) = x0, [a__U81](x0) = x0, [length](x0) = x0, [U11](x0) = x0, [U21](x0) = x0, [U31](x0) = x0, [U42](x0) = x0, [isNatIList](x0) = 0, [U52](x0) = x0, [isNatList](x0) = 0, [U62](x0) = x0, [isNat](x0) = 0, [U81](x0) = x0, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 0, [nil] = 0, [a__U92#](x0, x1, x2, x3) = x0, [a__U91#](x0, x1, x2, x3) = x0, [a__U93#](x0, x1, x2, x3) = x0, [a__U71#](x0, x1, x2) = x0, [a__U72#](x0, x1) = x0, [a__take#](x0, x1) = x0, [a__length#](x0) = x0, [mark#](x0) = x0 Strict: a__take#(s M, cons(N, IL)) -> a__U91#(a__isNatIList IL, IL, M, N) 0 + 1N + 0M + 1IL >= 0 + 1N + 0M + 0IL a__U93#(tt(), IL, M, N) -> mark# N 0 + 1N + 0M + 0IL >= 0 + 1N a__U91#(tt(), IL, M, N) -> a__U92#(a__isNat M, IL, M, N) 0 + 1N + 0M + 0IL >= 0 + 1N + 0M + 0IL a__U92#(tt(), IL, M, N) -> a__U93#(a__isNat N, IL, M, N) 0 + 1N + 0M + 0IL >= 0 + 1N + 0M + 0IL mark# U93(X1, X2, X3, X4) -> a__U93#(mark X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 mark# U93(X1, X2, X3, X4) -> mark# X1 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 mark# U92(X1, X2, X3, X4) -> a__U92#(mark X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 mark# U92(X1, X2, X3, X4) -> mark# X1 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 mark# U91(X1, X2, X3, X4) -> a__U91#(mark X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 mark# U91(X1, X2, X3, X4) -> mark# X1 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 mark# U81 X -> mark# X 0 + 1X >= 0 + 1X mark# U72(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U72(X1, X2) -> a__U72#(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 0X1 + 1X2 mark# U71(X1, X2, X3) -> mark# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 mark# U62 X -> mark# X 0 + 1X >= 0 + 1X mark# U61(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U52 X -> mark# X 0 + 1X >= 0 + 1X mark# U51(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U42 X -> mark# X 0 + 1X >= 0 + 1X mark# U41(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U31 X -> mark# X 0 + 1X >= 0 + 1X mark# U21 X -> mark# X 0 + 1X >= 0 + 1X mark# U11 X -> mark# X 0 + 1X >= 0 + 1X mark# length X -> mark# X 0 + 1X >= 0 + 1X mark# length X -> a__length# mark X 0 + 1X >= 0 + 1X mark# take(X1, X2) -> a__take#(mark X1, mark X2) 1 + 1X1 + 1X2 >= 0 + 0X1 + 1X2 mark# take(X1, X2) -> mark# X2 1 + 1X1 + 1X2 >= 0 + 1X2 mark# take(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N) 0 + 1N + 1L >= 0 + 0N + 1L a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L) 0 + 0N + 1L >= 0 + 0N + 1L a__U72#(tt(), L) -> mark# L 0 + 1L >= 0 + 1L a__U72#(tt(), L) -> a__length# mark L 0 + 1L >= 0 + 1L Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 1 + 1N + 1M + 1IL >= 1 + 1N + 1M + 1IL a__take(0(), IL) -> a__U81 a__isNatIList IL 1 + 1IL >= 0 + 0IL a__take(X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 1 + 1N + 1M + 1IL >= 1 + 1N + 1M + 1IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 1 + 1N + 1M + 1IL >= 1 + 1N + 1M + 1IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 1 + 1N + 1M + 1IL >= 1 + 1N + 1M + 1IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 a__U81 tt() -> nil() 0 >= 0 a__U81 X -> U81 X 0 + 1X >= 0 + 1X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 mark U81 X -> a__U81 mark X 0 + 1X >= 0 + 1X mark isNat X -> a__isNat X 0 + 0X >= 0 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 mark U62 X -> a__U62 mark X 0 + 1X >= 0 + 1X mark U61(X1, X2) -> a__U61(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatList X -> a__isNatList X 0 + 0X >= 0 + 0X mark U52 X -> a__U52 mark X 0 + 1X >= 0 + 1X mark U51(X1, X2) -> a__U51(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatIList X -> a__isNatIList X 0 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 0 + 1X >= 0 + 1X mark U41(X1, X2) -> a__U41(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U31 X -> a__U31 mark X 0 + 1X >= 0 + 1X mark U21 X -> a__U21 mark X 0 + 1X >= 0 + 1X mark U11 X -> a__U11 mark X 0 + 1X >= 0 + 1X mark length X -> a__length mark X 0 + 1X >= 0 + 1X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> nil() 0 >= 0 mark s X -> s mark X 0 + 1X >= 0 + 1X mark tt() -> tt() 0 >= 0 mark zeros() -> a__zeros() 0 >= 0 mark 0() -> 0() 0 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__length nil() -> 0() 0 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 0 + 1N + 1L >= 0 + 0N + 1L a__length X -> length X 0 + 1X >= 0 + 1X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 0 + 0N + 1L >= 0 + 0N + 1L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 0 + 0V1 >= 0 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 0 + 0V1 >= 0 + 0V1 a__isNat 0() -> tt() 0 >= 0 a__isNat X -> isNat X 0 + 0X >= 0 + 0X a__U72(tt(), L) -> s a__length mark L 0 + 1L >= 0 + 1L a__U72(X1, X2) -> U72(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U62 tt() -> tt() 0 >= 0 a__U62 X -> U62 X 0 + 1X >= 0 + 1X a__U51(tt(), V2) -> a__U52 a__isNatList V2 0 + 0V2 >= 0 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatList nil() -> tt() 0 >= 0 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatList X -> isNatList X 0 + 0X >= 0 + 0X a__U52 tt() -> tt() 0 >= 0 a__U52 X -> U52 X 0 + 1X >= 0 + 1X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 0 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 0 + 0V a__U42 tt() -> tt() 0 >= 0 a__U42 X -> U42 X 0 + 1X >= 0 + 1X a__U31 tt() -> tt() 0 >= 0 a__U31 X -> U31 X 0 + 1X >= 0 + 1X a__U21 tt() -> tt() 0 >= 0 a__U21 X -> U21 X 0 + 1X >= 0 + 1X a__U11 tt() -> tt() 0 >= 0 a__U11 X -> U11 X 0 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: { a__U72#(tt(), L) -> a__length# mark L, a__U72#(tt(), L) -> mark# L, a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1, mark# U62 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3), mark# U71(X1, X2, X3) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2), mark# U72(X1, X2) -> mark# X1, mark# U81 X -> mark# X} SCC (22): Strict: { a__U72#(tt(), L) -> a__length# mark L, a__U72#(tt(), L) -> mark# L, a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1, mark# U62 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3), mark# U71(X1, X2, X3) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2), mark# U72(X1, X2) -> mark# X1, mark# U81 X -> mark# X} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = x0 + x1 + 1, [a__U91](x0, x1, x2, x3) = x0 + x1 + 1, [a__U93](x0, x1, x2, x3) = x0 + x1 + 1, [U91](x0, x1, x2, x3) = x0 + x1 + 1, [U92](x0, x1, x2, x3) = x0 + x1 + 1, [U93](x0, x1, x2, x3) = x0 + x1 + 1, [a__U71](x0, x1, x2) = x0 + x1, [U71](x0, x1, x2) = x0 + x1, [cons](x0, x1) = x0 + x1, [a__U41](x0, x1) = x0, [a__U51](x0, x1) = x0, [a__U61](x0, x1) = x0, [a__U72](x0, x1) = x0 + x1, [take](x0, x1) = x0 + 1, [a__take](x0, x1) = x0 + 1, [U41](x0, x1) = x0, [U51](x0, x1) = x0, [U61](x0, x1) = x0, [U72](x0, x1) = x0 + x1, [a__U11](x0) = x0, [a__U21](x0) = x0, [a__U31](x0) = x0, [a__U42](x0) = x0, [a__isNatIList](x0) = 0, [a__U52](x0) = x0, [a__isNatList](x0) = 0, [a__U62](x0) = x0, [a__isNat](x0) = 0, [s](x0) = x0, [a__length](x0) = x0, [mark](x0) = x0, [a__U81](x0) = x0 + 1, [length](x0) = x0, [U11](x0) = x0, [U21](x0) = x0, [U31](x0) = x0, [U42](x0) = x0, [isNatIList](x0) = 0, [U52](x0) = x0, [isNatList](x0) = 0, [U62](x0) = x0, [isNat](x0) = 0, [U81](x0) = x0 + 1, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 0, [nil] = 0, [a__U71#](x0, x1, x2) = x0 + x1, [a__U72#](x0, x1) = x0 + x1, [a__length#](x0) = x0, [mark#](x0) = x0 Strict: mark# U81 X -> mark# X 1 + 1X >= 0 + 1X mark# U72(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U72(X1, X2) -> a__U72#(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U71(X1, X2, X3) -> mark# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 mark# U62 X -> mark# X 0 + 1X >= 0 + 1X mark# U61(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U52 X -> mark# X 0 + 1X >= 0 + 1X mark# U51(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U42 X -> mark# X 0 + 1X >= 0 + 1X mark# U41(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U31 X -> mark# X 0 + 1X >= 0 + 1X mark# U21 X -> mark# X 0 + 1X >= 0 + 1X mark# U11 X -> mark# X 0 + 1X >= 0 + 1X mark# length X -> mark# X 0 + 1X >= 0 + 1X mark# length X -> a__length# mark X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N) 0 + 1N + 1L >= 0 + 0N + 1L a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L) 0 + 0N + 1L >= 0 + 0N + 1L a__U72#(tt(), L) -> mark# L 0 + 1L >= 0 + 1L a__U72#(tt(), L) -> a__length# mark L 0 + 1L >= 0 + 1L Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 1 + 1N + 0M + 1IL >= 1 + 1N + 0M + 1IL a__take(0(), IL) -> a__U81 a__isNatIList IL 1 + 1IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 1 + 1N + 0M + 1IL >= 1 + 1N + 0M + 1IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 1 + 1N + 0M + 1IL >= 1 + 1N + 0M + 1IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 1 + 1N + 0M + 1IL >= 1 + 1N + 0M + 1IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 a__U81 tt() -> nil() 1 >= 0 a__U81 X -> U81 X 1 + 1X >= 1 + 1X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 mark U81 X -> a__U81 mark X 1 + 1X >= 1 + 1X mark isNat X -> a__isNat X 0 + 0X >= 0 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 mark U62 X -> a__U62 mark X 0 + 1X >= 0 + 1X mark U61(X1, X2) -> a__U61(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatList X -> a__isNatList X 0 + 0X >= 0 + 0X mark U52 X -> a__U52 mark X 0 + 1X >= 0 + 1X mark U51(X1, X2) -> a__U51(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatIList X -> a__isNatIList X 0 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 0 + 1X >= 0 + 1X mark U41(X1, X2) -> a__U41(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U31 X -> a__U31 mark X 0 + 1X >= 0 + 1X mark U21 X -> a__U21 mark X 0 + 1X >= 0 + 1X mark U11 X -> a__U11 mark X 0 + 1X >= 0 + 1X mark length X -> a__length mark X 0 + 1X >= 0 + 1X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 mark nil() -> nil() 0 >= 0 mark s X -> s mark X 0 + 1X >= 0 + 1X mark tt() -> tt() 0 >= 0 mark zeros() -> a__zeros() 0 >= 0 mark 0() -> 0() 0 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__length nil() -> 0() 0 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 0 + 1N + 1L >= 0 + 0N + 1L a__length X -> length X 0 + 1X >= 0 + 1X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 0 + 0N + 1L >= 0 + 0N + 1L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 0 + 0V1 >= 0 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 0 + 0V1 >= 0 + 0V1 a__isNat 0() -> tt() 0 >= 0 a__isNat X -> isNat X 0 + 0X >= 0 + 0X a__U72(tt(), L) -> s a__length mark L 0 + 1L >= 0 + 1L a__U72(X1, X2) -> U72(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U62 tt() -> tt() 0 >= 0 a__U62 X -> U62 X 0 + 1X >= 0 + 1X a__U51(tt(), V2) -> a__U52 a__isNatList V2 0 + 0V2 >= 0 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatList nil() -> tt() 0 >= 0 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatList X -> isNatList X 0 + 0X >= 0 + 0X a__U52 tt() -> tt() 0 >= 0 a__U52 X -> U52 X 0 + 1X >= 0 + 1X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 0 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 0 + 0V a__U42 tt() -> tt() 0 >= 0 a__U42 X -> U42 X 0 + 1X >= 0 + 1X a__U31 tt() -> tt() 0 >= 0 a__U31 X -> U31 X 0 + 1X >= 0 + 1X a__U21 tt() -> tt() 0 >= 0 a__U21 X -> U21 X 0 + 1X >= 0 + 1X a__U11 tt() -> tt() 0 >= 0 a__U11 X -> U11 X 0 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: { a__U72#(tt(), L) -> a__length# mark L, a__U72#(tt(), L) -> mark# L, a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1, mark# U62 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3), mark# U71(X1, X2, X3) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2), mark# U72(X1, X2) -> mark# X1} SCC (21): Strict: { a__U72#(tt(), L) -> a__length# mark L, a__U72#(tt(), L) -> mark# L, a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N), mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# length X -> a__length# mark X, mark# length X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1, mark# U62 X -> mark# X, mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3), mark# U71(X1, X2, X3) -> mark# X1, mark# U72(X1, X2) -> a__U72#(mark X1, X2), mark# U72(X1, X2) -> mark# X1} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = x0 + x1 + 1, [a__U91](x0, x1, x2, x3) = x0 + x1 + 1, [a__U93](x0, x1, x2, x3) = x0 + x1 + 1, [U91](x0, x1, x2, x3) = x0 + x1 + 1, [U92](x0, x1, x2, x3) = x0 + x1 + 1, [U93](x0, x1, x2, x3) = x0 + x1 + 1, [a__U71](x0, x1, x2) = x0 + x1 + 1, [U71](x0, x1, x2) = x0 + x1 + 1, [cons](x0, x1) = x0 + x1, [a__U41](x0, x1) = x0, [a__U51](x0, x1) = x0, [a__U61](x0, x1) = x0, [a__U72](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + 1, [a__take](x0, x1) = x0 + 1, [U41](x0, x1) = x0, [U51](x0, x1) = x0, [U61](x0, x1) = x0, [U72](x0, x1) = x0 + x1 + 1, [a__U11](x0) = x0, [a__U21](x0) = x0, [a__U31](x0) = x0, [a__U42](x0) = x0, [a__isNatIList](x0) = 0, [a__U52](x0) = x0, [a__isNatList](x0) = 0, [a__U62](x0) = x0, [a__isNat](x0) = 0, [s](x0) = x0, [a__length](x0) = x0 + 1, [mark](x0) = x0, [a__U81](x0) = 1, [length](x0) = x0 + 1, [U11](x0) = x0, [U21](x0) = x0, [U31](x0) = x0, [U42](x0) = x0, [isNatIList](x0) = 0, [U52](x0) = x0, [isNatList](x0) = 0, [U62](x0) = x0, [isNat](x0) = 0, [U81](x0) = 1, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 0, [nil] = 1, [a__U71#](x0, x1, x2) = x0 + x1 + 1, [a__U72#](x0, x1) = x0 + x1 + 1, [a__length#](x0) = x0 + 1, [mark#](x0) = x0 + 1 Strict: mark# U72(X1, X2) -> mark# X1 2 + 1X1 + 1X2 >= 1 + 1X1 mark# U72(X1, X2) -> a__U72#(mark X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark# U71(X1, X2, X3) -> mark# X1 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 mark# U71(X1, X2, X3) -> a__U71#(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 mark# U62 X -> mark# X 1 + 1X >= 1 + 1X mark# U61(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 1 + 1X1 mark# U52 X -> mark# X 1 + 1X >= 1 + 1X mark# U51(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 1 + 1X1 mark# U42 X -> mark# X 1 + 1X >= 1 + 1X mark# U41(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 1 + 1X1 mark# U31 X -> mark# X 1 + 1X >= 1 + 1X mark# U21 X -> mark# X 1 + 1X >= 1 + 1X mark# U11 X -> mark# X 1 + 1X >= 1 + 1X mark# length X -> mark# X 2 + 1X >= 1 + 1X mark# length X -> a__length# mark X 2 + 1X >= 1 + 1X mark# s X -> mark# X 1 + 1X >= 1 + 1X mark# cons(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 1 + 1X1 a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N) 1 + 1N + 1L >= 1 + 0N + 1L a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L) 1 + 0N + 1L >= 1 + 0N + 1L a__U72#(tt(), L) -> mark# L 1 + 1L >= 1 + 1L a__U72#(tt(), L) -> a__length# mark L 1 + 1L >= 1 + 1L Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 1 + 1N + 0M + 1IL >= 1 + 1N + 0M + 1IL a__take(0(), IL) -> a__U81 a__isNatIList IL 1 + 1IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 1 + 1N + 0M + 1IL >= 1 + 1N + 0M + 1IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 1 + 1N + 0M + 1IL >= 1 + 1N + 0M + 1IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 1 + 1N + 0M + 1IL >= 1 + 1N + 0M + 1IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 a__U81 tt() -> nil() 1 >= 1 a__U81 X -> U81 X 1 + 0X >= 1 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 1X4 >= 1 + 0X1 + 1X2 + 0X3 + 1X4 mark U81 X -> a__U81 mark X 1 + 0X >= 1 + 0X mark isNat X -> a__isNat X 0 + 0X >= 0 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 mark U62 X -> a__U62 mark X 0 + 1X >= 0 + 1X mark U61(X1, X2) -> a__U61(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatList X -> a__isNatList X 0 + 0X >= 0 + 0X mark U52 X -> a__U52 mark X 0 + 1X >= 0 + 1X mark U51(X1, X2) -> a__U51(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatIList X -> a__isNatIList X 0 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 0 + 1X >= 0 + 1X mark U41(X1, X2) -> a__U41(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U31 X -> a__U31 mark X 0 + 1X >= 0 + 1X mark U21 X -> a__U21 mark X 0 + 1X >= 0 + 1X mark U11 X -> a__U11 mark X 0 + 1X >= 0 + 1X mark length X -> a__length mark X 1 + 1X >= 1 + 1X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 mark nil() -> nil() 1 >= 1 mark s X -> s mark X 0 + 1X >= 0 + 1X mark tt() -> tt() 0 >= 0 mark zeros() -> a__zeros() 0 >= 0 mark 0() -> 0() 0 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__length nil() -> 0() 2 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 1L >= 1 + 0N + 1L a__length X -> length X 1 + 1X >= 1 + 1X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 1 + 0N + 1L >= 1 + 0N + 1L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 0 + 0V1 >= 0 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 0 + 0V1 >= 0 + 0V1 a__isNat 0() -> tt() 0 >= 0 a__isNat X -> isNat X 0 + 0X >= 0 + 0X a__U72(tt(), L) -> s a__length mark L 1 + 1L >= 1 + 1L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U62 tt() -> tt() 0 >= 0 a__U62 X -> U62 X 0 + 1X >= 0 + 1X a__U51(tt(), V2) -> a__U52 a__isNatList V2 0 + 0V2 >= 0 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatList nil() -> tt() 0 >= 0 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatList X -> isNatList X 0 + 0X >= 0 + 0X a__U52 tt() -> tt() 0 >= 0 a__U52 X -> U52 X 0 + 1X >= 0 + 1X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 0 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 0 + 0V a__U42 tt() -> tt() 0 >= 0 a__U42 X -> U42 X 0 + 1X >= 0 + 1X a__U31 tt() -> tt() 0 >= 0 a__U31 X -> U31 X 0 + 1X >= 0 + 1X a__U21 tt() -> tt() 0 >= 0 a__U21 X -> U21 X 0 + 1X >= 0 + 1X a__U11 tt() -> tt() 0 >= 0 a__U11 X -> U11 X 0 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (2): Scc: { a__U72#(tt(), L) -> a__length# mark L, a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N)} Scc: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1, mark# U62 X -> mark# X} SCC (3): Strict: { a__U72#(tt(), L) -> a__length# mark L, a__U71#(tt(), L, N) -> a__U72#(a__isNat N, L), a__length# cons(N, L) -> a__U71#(a__isNatList L, L, N)} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} Fail SCC (11): Strict: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1, mark# U62 X -> mark# X} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = x0 + 1, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + 1, [U91](x0, x1, x2, x3) = 0, [U92](x0, x1, x2, x3) = 0, [U93](x0, x1, x2, x3) = 0, [a__U71](x0, x1, x2) = x0 + 1, [U71](x0, x1, x2) = 0, [cons](x0, x1) = x0, [a__U41](x0, x1) = x0 + 1, [a__U51](x0, x1) = x0 + 1, [a__U61](x0, x1) = x0 + 1, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 0, [a__take](x0, x1) = 0, [U41](x0, x1) = x0, [U51](x0, x1) = x0, [U61](x0, x1) = x0, [U72](x0, x1) = 0, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 1, [s](x0) = x0, [a__length](x0) = x0 + 1, [mark](x0) = 1, [a__U81](x0) = x0 + 1, [length](x0) = 0, [U11](x0) = x0, [U21](x0) = x0, [U31](x0) = x0, [U42](x0) = x0, [isNatIList](x0) = 0, [U52](x0) = x0, [isNatList](x0) = 0, [U62](x0) = x0 + 1, [isNat](x0) = 0, [U81](x0) = 0, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 1, [nil] = 1, [mark#](x0) = x0 Strict: mark# U62 X -> mark# X 1 + 1X >= 0 + 1X mark# U61(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U52 X -> mark# X 0 + 1X >= 0 + 1X mark# U51(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U42 X -> mark# X 0 + 1X >= 0 + 1X mark# U41(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U31 X -> mark# X 0 + 1X >= 0 + 1X mark# U21 X -> mark# X 0 + 1X >= 0 + 1X mark# U11 X -> mark# X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 2 >= 1 a__U81 X -> U81 X 1 + 1X >= 0 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 1 + 0X >= 2 + 0X mark isNat X -> a__isNat X 1 + 0X >= 1 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 1 + 0X >= 2 + 0X mark U61(X1, X2) -> a__U61(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 1 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 1 + 0X >= 2 + 0X mark U51(X1, X2) -> a__U51(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatIList X -> a__isNatIList X 1 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 1 + 0X >= 2 + 0X mark U41(X1, X2) -> a__U41(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U31 X -> a__U31 mark X 1 + 0X >= 2 + 0X mark U21 X -> a__U21 mark X 1 + 0X >= 2 + 0X mark U11 X -> a__U11 mark X 1 + 0X >= 2 + 0X mark length X -> a__length mark X 1 + 0X >= 2 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 1 >= 1 mark s X -> s mark X 1 + 0X >= 1 + 0X mark tt() -> tt() 1 >= 1 mark zeros() -> a__zeros() 1 >= 0 mark 0() -> 0() 1 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__length nil() -> 0() 2 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 0L >= 2 + 0N + 0L a__length X -> length X 1 + 1X >= 0 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 2 + 0N + 0L >= 2 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 0V1 >= 2 + 0V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 1 + 0X >= 0 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 2 + 0L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 1 + 1X a__U51(tt(), V2) -> a__U52 a__isNatList V2 2 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 0 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 0 + 1X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 0 + 1X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 0 + 1X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 0 + 1X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1} SCC (10): Strict: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X, mark# U61(X1, X2) -> mark# X1} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = x0 + 1, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + 1, [U91](x0, x1, x2, x3) = 0, [U92](x0, x1, x2, x3) = 0, [U93](x0, x1, x2, x3) = 0, [a__U71](x0, x1, x2) = x0 + 1, [U71](x0, x1, x2) = 0, [cons](x0, x1) = x0, [a__U41](x0, x1) = x0 + 1, [a__U51](x0, x1) = x0 + 1, [a__U61](x0, x1) = x0 + 1, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 0, [a__take](x0, x1) = 0, [U41](x0, x1) = x0, [U51](x0, x1) = x0, [U61](x0, x1) = x0 + 1, [U72](x0, x1) = 0, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 1, [s](x0) = x0, [a__length](x0) = x0 + 1, [mark](x0) = 1, [a__U81](x0) = x0 + 1, [length](x0) = 0, [U11](x0) = x0, [U21](x0) = x0, [U31](x0) = x0, [U42](x0) = x0, [isNatIList](x0) = 0, [U52](x0) = x0, [isNatList](x0) = 0, [U62](x0) = 0, [isNat](x0) = 0, [U81](x0) = 0, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 1, [nil] = 1, [mark#](x0) = x0 Strict: mark# U61(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 0 + 1X1 mark# U52 X -> mark# X 0 + 1X >= 0 + 1X mark# U51(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U42 X -> mark# X 0 + 1X >= 0 + 1X mark# U41(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U31 X -> mark# X 0 + 1X >= 0 + 1X mark# U21 X -> mark# X 0 + 1X >= 0 + 1X mark# U11 X -> mark# X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 2 >= 1 a__U81 X -> U81 X 1 + 1X >= 0 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 1 + 0X >= 2 + 0X mark isNat X -> a__isNat X 1 + 0X >= 1 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 1 + 0X >= 2 + 0X mark U61(X1, X2) -> a__U61(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 1 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 1 + 0X >= 2 + 0X mark U51(X1, X2) -> a__U51(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatIList X -> a__isNatIList X 1 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 1 + 0X >= 2 + 0X mark U41(X1, X2) -> a__U41(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U31 X -> a__U31 mark X 1 + 0X >= 2 + 0X mark U21 X -> a__U21 mark X 1 + 0X >= 2 + 0X mark U11 X -> a__U11 mark X 1 + 0X >= 2 + 0X mark length X -> a__length mark X 1 + 0X >= 2 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 1 >= 1 mark s X -> s mark X 1 + 0X >= 1 + 0X mark tt() -> tt() 1 >= 1 mark zeros() -> a__zeros() 1 >= 0 mark 0() -> 0() 1 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__length nil() -> 0() 2 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 0L >= 2 + 0N + 0L a__length X -> length X 1 + 1X >= 0 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 2 + 0N + 0L >= 2 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 0V1 >= 2 + 0V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 1 + 0X >= 0 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 2 + 0L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 0 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 2 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 0 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 0 + 1X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 0 + 1X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 0 + 1X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 0 + 1X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X} SCC (9): Strict: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1, mark# U52 X -> mark# X} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = x0 + 1, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + 1, [U91](x0, x1, x2, x3) = 0, [U92](x0, x1, x2, x3) = 0, [U93](x0, x1, x2, x3) = 0, [a__U71](x0, x1, x2) = x0 + 1, [U71](x0, x1, x2) = 0, [cons](x0, x1) = x0, [a__U41](x0, x1) = x0 + 1, [a__U51](x0, x1) = x0 + 1, [a__U61](x0, x1) = x0 + 1, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 0, [a__take](x0, x1) = 0, [U41](x0, x1) = x0, [U51](x0, x1) = x0, [U61](x0, x1) = 0, [U72](x0, x1) = 0, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 1, [s](x0) = x0, [a__length](x0) = x0 + 1, [mark](x0) = 1, [a__U81](x0) = x0 + 1, [length](x0) = 0, [U11](x0) = x0, [U21](x0) = x0, [U31](x0) = x0, [U42](x0) = x0, [isNatIList](x0) = 0, [U52](x0) = x0 + 1, [isNatList](x0) = 0, [U62](x0) = 0, [isNat](x0) = 0, [U81](x0) = 0, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 1, [nil] = 1, [mark#](x0) = x0 Strict: mark# U52 X -> mark# X 1 + 1X >= 0 + 1X mark# U51(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U42 X -> mark# X 0 + 1X >= 0 + 1X mark# U41(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U31 X -> mark# X 0 + 1X >= 0 + 1X mark# U21 X -> mark# X 0 + 1X >= 0 + 1X mark# U11 X -> mark# X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 2 >= 1 a__U81 X -> U81 X 1 + 1X >= 0 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 1 + 0X >= 2 + 0X mark isNat X -> a__isNat X 1 + 0X >= 1 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 1 + 0X >= 2 + 0X mark U61(X1, X2) -> a__U61(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 1 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 1 + 0X >= 2 + 0X mark U51(X1, X2) -> a__U51(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatIList X -> a__isNatIList X 1 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 1 + 0X >= 2 + 0X mark U41(X1, X2) -> a__U41(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U31 X -> a__U31 mark X 1 + 0X >= 2 + 0X mark U21 X -> a__U21 mark X 1 + 0X >= 2 + 0X mark U11 X -> a__U11 mark X 1 + 0X >= 2 + 0X mark length X -> a__length mark X 1 + 0X >= 2 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 1 >= 1 mark s X -> s mark X 1 + 0X >= 1 + 0X mark tt() -> tt() 1 >= 1 mark zeros() -> a__zeros() 1 >= 0 mark 0() -> 0() 1 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__length nil() -> 0() 2 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 0L >= 2 + 0N + 0L a__length X -> length X 1 + 1X >= 0 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 2 + 0N + 0L >= 2 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 0V1 >= 2 + 0V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 1 + 0X >= 0 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 2 + 0L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 0 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 2 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 0 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 1 + 1X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 0 + 1X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 0 + 1X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 0 + 1X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1} SCC (8): Strict: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X, mark# U51(X1, X2) -> mark# X1} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = 0, [a__U91](x0, x1, x2, x3) = 0, [a__U93](x0, x1, x2, x3) = 0, [U91](x0, x1, x2, x3) = 0, [U92](x0, x1, x2, x3) = 0, [U93](x0, x1, x2, x3) = 0, [a__U71](x0, x1, x2) = x0 + 1, [U71](x0, x1, x2) = 0, [cons](x0, x1) = x0, [a__U41](x0, x1) = 0, [a__U51](x0, x1) = 0, [a__U61](x0, x1) = 0, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 0, [a__take](x0, x1) = 0, [U41](x0, x1) = x0, [U51](x0, x1) = x0 + 1, [U61](x0, x1) = 0, [U72](x0, x1) = 0, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 0, [s](x0) = x0, [a__length](x0) = 0, [mark](x0) = 0, [a__U81](x0) = 0, [length](x0) = 0, [U11](x0) = x0, [U21](x0) = x0, [U31](x0) = x0, [U42](x0) = x0, [isNatIList](x0) = 0, [U52](x0) = 0, [isNatList](x0) = 0, [U62](x0) = 0, [isNat](x0) = 0, [U81](x0) = 0, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 1, [nil] = 0, [mark#](x0) = x0 Strict: mark# U51(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 0 + 1X1 mark# U42 X -> mark# X 0 + 1X >= 0 + 1X mark# U41(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U31 X -> mark# X 0 + 1X >= 0 + 1X mark# U21 X -> mark# X 0 + 1X >= 0 + 1X mark# U11 X -> mark# X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 0 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 0 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 0 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 0 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 0 >= 0 a__U81 X -> U81 X 0 + 0X >= 0 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 0 + 0X >= 0 + 0X mark isNat X -> a__isNat X 0 + 0X >= 0 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 0 + 0X >= 1 + 0X mark U61(X1, X2) -> a__U61(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 0 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 0 + 0X >= 1 + 0X mark U51(X1, X2) -> a__U51(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatIList X -> a__isNatIList X 0 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 0 + 0X >= 1 + 0X mark U41(X1, X2) -> a__U41(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U31 X -> a__U31 mark X 0 + 0X >= 1 + 0X mark U21 X -> a__U21 mark X 0 + 0X >= 1 + 0X mark U11 X -> a__U11 mark X 0 + 0X >= 1 + 0X mark length X -> a__length mark X 0 + 0X >= 0 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 0 >= 0 mark s X -> s mark X 0 + 0X >= 0 + 0X mark tt() -> tt() 0 >= 1 mark zeros() -> a__zeros() 0 >= 0 mark 0() -> 0() 0 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__length nil() -> 0() 0 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 0 + 0N + 0L >= 2 + 0N + 0L a__length X -> length X 0 + 0X >= 0 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 2 + 0N + 0L >= 1 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 0 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 0 + 0V1 >= 1 + 0V1 a__isNat 0() -> tt() 0 >= 1 a__isNat X -> isNat X 0 + 0X >= 0 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 0 + 0L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 0 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 0 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 0 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 1X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 0 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 0 + 0X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 0 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 0 + 0X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 0 + 1X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 0 + 1X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 0 + 1X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X} SCC (7): Strict: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1, mark# U42 X -> mark# X} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = x0 + 1, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + 1, [U91](x0, x1, x2, x3) = 0, [U92](x0, x1, x2, x3) = 0, [U93](x0, x1, x2, x3) = 0, [a__U71](x0, x1, x2) = x0 + 1, [U71](x0, x1, x2) = 0, [cons](x0, x1) = x0, [a__U41](x0, x1) = x0 + 1, [a__U51](x0, x1) = x0 + 1, [a__U61](x0, x1) = x0 + 1, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 0, [a__take](x0, x1) = 0, [U41](x0, x1) = x0, [U51](x0, x1) = 0, [U61](x0, x1) = 0, [U72](x0, x1) = 0, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 1, [s](x0) = x0, [a__length](x0) = x0 + 1, [mark](x0) = 1, [a__U81](x0) = x0 + 1, [length](x0) = 0, [U11](x0) = x0, [U21](x0) = x0, [U31](x0) = x0, [U42](x0) = x0 + 1, [isNatIList](x0) = 0, [U52](x0) = 0, [isNatList](x0) = 0, [U62](x0) = 0, [isNat](x0) = 0, [U81](x0) = 0, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 1, [nil] = 0, [mark#](x0) = x0 Strict: mark# U42 X -> mark# X 1 + 1X >= 0 + 1X mark# U41(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U31 X -> mark# X 0 + 1X >= 0 + 1X mark# U21 X -> mark# X 0 + 1X >= 0 + 1X mark# U11 X -> mark# X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 2 >= 0 a__U81 X -> U81 X 1 + 1X >= 0 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 1 + 0X >= 2 + 0X mark isNat X -> a__isNat X 1 + 0X >= 1 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 1 + 0X >= 2 + 0X mark U61(X1, X2) -> a__U61(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 1 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 1 + 0X >= 2 + 0X mark U51(X1, X2) -> a__U51(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatIList X -> a__isNatIList X 1 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 1 + 0X >= 2 + 0X mark U41(X1, X2) -> a__U41(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U31 X -> a__U31 mark X 1 + 0X >= 2 + 0X mark U21 X -> a__U21 mark X 1 + 0X >= 2 + 0X mark U11 X -> a__U11 mark X 1 + 0X >= 2 + 0X mark length X -> a__length mark X 1 + 0X >= 2 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 1 >= 0 mark s X -> s mark X 1 + 0X >= 1 + 0X mark tt() -> tt() 1 >= 1 mark zeros() -> a__zeros() 1 >= 0 mark 0() -> 0() 1 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__length nil() -> 0() 1 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 0L >= 2 + 0N + 0L a__length X -> length X 1 + 1X >= 0 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 2 + 0N + 0L >= 2 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 0V1 >= 2 + 0V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 1 + 0X >= 0 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 2 + 0L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 0 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 2 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 0 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 0 + 0X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 1 + 1X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 0 + 1X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 0 + 1X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1} SCC (6): Strict: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X, mark# U41(X1, X2) -> mark# X1} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = 0, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + 1, [U91](x0, x1, x2, x3) = 0, [U92](x0, x1, x2, x3) = 0, [U93](x0, x1, x2, x3) = 0, [a__U71](x0, x1, x2) = x0 + 1, [U71](x0, x1, x2) = 0, [cons](x0, x1) = x0, [a__U41](x0, x1) = x0 + 1, [a__U51](x0, x1) = x0 + 1, [a__U61](x0, x1) = x0 + 1, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 0, [a__take](x0, x1) = 0, [U41](x0, x1) = x0 + 1, [U51](x0, x1) = 0, [U61](x0, x1) = 0, [U72](x0, x1) = 0, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 1, [s](x0) = x0, [a__length](x0) = x0 + 1, [mark](x0) = 1, [a__U81](x0) = x0 + 1, [length](x0) = 0, [U11](x0) = x0, [U21](x0) = x0, [U31](x0) = x0, [U42](x0) = 0, [isNatIList](x0) = 0, [U52](x0) = 0, [isNatList](x0) = 0, [U62](x0) = 0, [isNat](x0) = 0, [U81](x0) = 0, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 1, [nil] = 1, [mark#](x0) = x0 Strict: mark# U41(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 0 + 1X1 mark# U31 X -> mark# X 0 + 1X >= 0 + 1X mark# U21 X -> mark# X 0 + 1X >= 0 + 1X mark# U11 X -> mark# X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 0 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 2 >= 1 a__U81 X -> U81 X 1 + 1X >= 0 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 1 + 0X >= 2 + 0X mark isNat X -> a__isNat X 1 + 0X >= 1 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 1 + 0X >= 2 + 0X mark U61(X1, X2) -> a__U61(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 1 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 1 + 0X >= 2 + 0X mark U51(X1, X2) -> a__U51(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatIList X -> a__isNatIList X 1 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 1 + 0X >= 2 + 0X mark U41(X1, X2) -> a__U41(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U31 X -> a__U31 mark X 1 + 0X >= 2 + 0X mark U21 X -> a__U21 mark X 1 + 0X >= 2 + 0X mark U11 X -> a__U11 mark X 1 + 0X >= 2 + 0X mark length X -> a__length mark X 1 + 0X >= 2 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 1 >= 1 mark s X -> s mark X 1 + 0X >= 1 + 0X mark tt() -> tt() 1 >= 1 mark zeros() -> a__zeros() 1 >= 0 mark 0() -> 0() 1 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__length nil() -> 0() 2 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 0L >= 2 + 0N + 0L a__length X -> length X 1 + 1X >= 0 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 2 + 0N + 0L >= 2 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 0V1 >= 2 + 0V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 1 + 0X >= 0 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 2 + 0L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 0 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 2 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 0 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 0 + 0X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 0 + 0X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 0 + 1X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 0 + 1X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X} SCC (5): Strict: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X, mark# U31 X -> mark# X} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = 0, [a__U91](x0, x1, x2, x3) = 0, [a__U93](x0, x1, x2, x3) = 0, [U91](x0, x1, x2, x3) = 0, [U92](x0, x1, x2, x3) = 0, [U93](x0, x1, x2, x3) = 0, [a__U71](x0, x1, x2) = x0 + 1, [U71](x0, x1, x2) = 0, [cons](x0, x1) = x0, [a__U41](x0, x1) = x0 + 1, [a__U51](x0, x1) = x0 + 1, [a__U61](x0, x1) = x0 + 1, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 0, [a__take](x0, x1) = 0, [U41](x0, x1) = 0, [U51](x0, x1) = 0, [U61](x0, x1) = 0, [U72](x0, x1) = 0, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 1, [s](x0) = x0, [a__length](x0) = 0, [mark](x0) = 0, [a__U81](x0) = 0, [length](x0) = 0, [U11](x0) = x0, [U21](x0) = x0, [U31](x0) = x0 + 1, [U42](x0) = 0, [isNatIList](x0) = 0, [U52](x0) = 0, [isNatList](x0) = 0, [U62](x0) = 0, [isNat](x0) = 0, [U81](x0) = 0, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 1, [nil] = 0, [mark#](x0) = x0 Strict: mark# U31 X -> mark# X 1 + 1X >= 0 + 1X mark# U21 X -> mark# X 0 + 1X >= 0 + 1X mark# U11 X -> mark# X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 0 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 0 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 0 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 0 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 0 >= 0 a__U81 X -> U81 X 0 + 0X >= 0 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 0 + 0X >= 0 + 0X mark isNat X -> a__isNat X 0 + 0X >= 1 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 0 + 0X >= 1 + 0X mark U61(X1, X2) -> a__U61(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 0 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 0 + 0X >= 1 + 0X mark U51(X1, X2) -> a__U51(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark isNatIList X -> a__isNatIList X 0 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 0 + 0X >= 1 + 0X mark U41(X1, X2) -> a__U41(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U31 X -> a__U31 mark X 0 + 0X >= 1 + 0X mark U21 X -> a__U21 mark X 0 + 0X >= 1 + 0X mark U11 X -> a__U11 mark X 0 + 0X >= 1 + 0X mark length X -> a__length mark X 0 + 0X >= 0 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 0 >= 0 mark s X -> s mark X 0 + 0X >= 0 + 0X mark tt() -> tt() 0 >= 1 mark zeros() -> a__zeros() 0 >= 0 mark 0() -> 0() 0 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__length nil() -> 0() 0 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 0 + 0N + 0L >= 2 + 0N + 0L a__length X -> length X 0 + 0X >= 0 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 2 + 0N + 0L >= 2 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 0V1 >= 2 + 0V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 1 + 0X >= 0 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 0 + 0L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 0 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 2 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 0 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 0 + 0X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 0 + 0X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 1 + 1X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 0 + 1X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X} SCC (4): Strict: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X, mark# U21 X -> mark# X} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = x0 + 1, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + 1, [U91](x0, x1, x2, x3) = 1, [U92](x0, x1, x2, x3) = 1, [U93](x0, x1, x2, x3) = 1, [a__U71](x0, x1, x2) = x0 + 1, [U71](x0, x1, x2) = 1, [cons](x0, x1) = x0, [a__U41](x0, x1) = x0 + 1, [a__U51](x0, x1) = x0 + 1, [a__U61](x0, x1) = x0 + 1, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 1, [a__take](x0, x1) = 0, [U41](x0, x1) = 1, [U51](x0, x1) = 1, [U61](x0, x1) = 1, [U72](x0, x1) = 1, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 1, [s](x0) = x0, [a__length](x0) = x0 + 1, [mark](x0) = x0 + 1, [a__U81](x0) = x0 + 1, [length](x0) = 1, [U11](x0) = x0, [U21](x0) = x0 + 1, [U31](x0) = 1, [U42](x0) = 1, [isNatIList](x0) = 1, [U52](x0) = 1, [isNatList](x0) = 1, [U62](x0) = 1, [isNat](x0) = 1, [U81](x0) = 1, [0] = 0, [zeros] = 1, [a__zeros] = 0, [tt] = 1, [nil] = 1, [mark#](x0) = x0 Strict: mark# U21 X -> mark# X 1 + 1X >= 0 + 1X mark# U11 X -> mark# X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 0N + 0M + 0IL >= 1 + 1N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 2 >= 1 a__U81 X -> U81 X 1 + 1X >= 1 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 2 + 0X >= 2 + 1X mark isNat X -> a__isNat X 2 + 0X >= 1 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 2 + 0X >= 2 + 1X mark U61(X1, X2) -> a__U61(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark isNatList X -> a__isNatList X 2 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 2 + 0X >= 2 + 1X mark U51(X1, X2) -> a__U51(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark isNatIList X -> a__isNatIList X 2 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 2 + 0X >= 2 + 1X mark U41(X1, X2) -> a__U41(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark U31 X -> a__U31 mark X 2 + 0X >= 2 + 1X mark U21 X -> a__U21 mark X 2 + 1X >= 2 + 1X mark U11 X -> a__U11 mark X 1 + 1X >= 2 + 1X mark length X -> a__length mark X 2 + 0X >= 2 + 1X mark take(X1, X2) -> a__take(mark X1, mark X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 2 >= 1 mark s X -> s mark X 1 + 1X >= 1 + 1X mark tt() -> tt() 2 >= 1 mark zeros() -> a__zeros() 2 >= 0 mark 0() -> 0() 1 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 a__length nil() -> 0() 2 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 0L >= 2 + 0N + 0L a__length X -> length X 1 + 1X >= 1 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 2 + 0N + 0L >= 2 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 0V1 >= 2 + 0V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 1 + 0X >= 1 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 2 + 1L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 1 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 2 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 1 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 1 + 0X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 1 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 1 + 0X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 1 + 0X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 1 + 1X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 0 + 1X a__zeros() -> zeros() 0 >= 1 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X} SCC (3): Strict: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X, mark# U11 X -> mark# X} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = x0 + 1, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + 1, [U91](x0, x1, x2, x3) = 1, [U92](x0, x1, x2, x3) = 1, [U93](x0, x1, x2, x3) = 1, [a__U71](x0, x1, x2) = 0, [U71](x0, x1, x2) = 1, [cons](x0, x1) = x0, [a__U41](x0, x1) = x0 + 1, [a__U51](x0, x1) = x0 + 1, [a__U61](x0, x1) = x0 + 1, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 1, [a__take](x0, x1) = 0, [U41](x0, x1) = 1, [U51](x0, x1) = 1, [U61](x0, x1) = 1, [U72](x0, x1) = 1, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 1, [s](x0) = x0, [a__length](x0) = x0 + 1, [mark](x0) = x0 + 1, [a__U81](x0) = x0 + 1, [length](x0) = 1, [U11](x0) = x0 + 1, [U21](x0) = 1, [U31](x0) = 1, [U42](x0) = 1, [isNatIList](x0) = 1, [U52](x0) = 1, [isNatList](x0) = 1, [U62](x0) = 1, [isNat](x0) = 1, [U81](x0) = 1, [0] = 0, [zeros] = 1, [a__zeros] = 0, [tt] = 1, [nil] = 1, [mark#](x0) = x0 Strict: mark# U11 X -> mark# X 1 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 0N + 0M + 0IL >= 1 + 1N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 2 >= 1 a__U81 X -> U81 X 1 + 1X >= 1 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 2 + 0X >= 2 + 1X mark isNat X -> a__isNat X 2 + 0X >= 1 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 2 + 0X >= 2 + 1X mark U61(X1, X2) -> a__U61(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark isNatList X -> a__isNatList X 2 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 2 + 0X >= 2 + 1X mark U51(X1, X2) -> a__U51(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark isNatIList X -> a__isNatIList X 2 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 2 + 0X >= 2 + 1X mark U41(X1, X2) -> a__U41(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark U31 X -> a__U31 mark X 2 + 0X >= 2 + 1X mark U21 X -> a__U21 mark X 2 + 0X >= 2 + 1X mark U11 X -> a__U11 mark X 2 + 1X >= 2 + 1X mark length X -> a__length mark X 2 + 0X >= 2 + 1X mark take(X1, X2) -> a__take(mark X1, mark X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 2 >= 1 mark s X -> s mark X 1 + 1X >= 1 + 1X mark tt() -> tt() 2 >= 1 mark zeros() -> a__zeros() 2 >= 0 mark 0() -> 0() 1 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 a__length nil() -> 0() 2 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 0L >= 0 + 0N + 0L a__length X -> length X 1 + 1X >= 1 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 0 + 0N + 0L >= 2 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 0V1 >= 2 + 0V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 1 + 0X >= 1 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 2 + 1L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 1 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 2 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 1 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 1 + 0X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 1 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 1 + 0X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 1 + 0X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 1 + 0X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 1 + 1X a__zeros() -> zeros() 0 >= 1 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X} SCC (2): Strict: {mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = x0, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + 1, [U91](x0, x1, x2, x3) = 1, [U92](x0, x1, x2, x3) = 1, [U93](x0, x1, x2, x3) = 1, [a__U71](x0, x1, x2) = 0, [U71](x0, x1, x2) = 1, [cons](x0, x1) = x0, [a__U41](x0, x1) = x0 + 1, [a__U51](x0, x1) = x0 + 1, [a__U61](x0, x1) = x0 + 1, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 1, [a__take](x0, x1) = 0, [U41](x0, x1) = 1, [U51](x0, x1) = 1, [U61](x0, x1) = 1, [U72](x0, x1) = 1, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 1, [s](x0) = x0 + 1, [a__length](x0) = x0 + 1, [mark](x0) = x0 + 1, [a__U81](x0) = x0 + 1, [length](x0) = 1, [U11](x0) = 1, [U21](x0) = 1, [U31](x0) = 1, [U42](x0) = 1, [isNatIList](x0) = 1, [U52](x0) = 1, [isNatList](x0) = 1, [U62](x0) = 1, [isNat](x0) = 1, [U81](x0) = 1, [0] = 0, [zeros] = 1, [a__zeros] = 0, [tt] = 1, [nil] = 1, [mark#](x0) = x0 Strict: mark# s X -> mark# X 1 + 1X >= 0 + 1X mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 0N + 0M + 0IL >= 1 + 1N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 1 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 2 >= 1 a__U81 X -> U81 X 1 + 1X >= 1 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 2 + 0X >= 2 + 1X mark isNat X -> a__isNat X 2 + 0X >= 1 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 2 + 0X >= 2 + 1X mark U61(X1, X2) -> a__U61(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark isNatList X -> a__isNatList X 2 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 2 + 0X >= 2 + 1X mark U51(X1, X2) -> a__U51(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark isNatIList X -> a__isNatIList X 2 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 2 + 0X >= 2 + 1X mark U41(X1, X2) -> a__U41(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark U31 X -> a__U31 mark X 2 + 0X >= 2 + 1X mark U21 X -> a__U21 mark X 2 + 0X >= 2 + 1X mark U11 X -> a__U11 mark X 2 + 0X >= 2 + 1X mark length X -> a__length mark X 2 + 0X >= 2 + 1X mark take(X1, X2) -> a__take(mark X1, mark X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 2 >= 1 mark s X -> s mark X 2 + 1X >= 2 + 1X mark tt() -> tt() 2 >= 1 mark zeros() -> a__zeros() 2 >= 0 mark 0() -> 0() 1 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 a__length nil() -> 0() 2 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 0L >= 0 + 0N + 0L a__length X -> length X 1 + 1X >= 1 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 0 + 0N + 0L >= 2 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 0V1 >= 2 + 0V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 1 + 0X >= 1 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 3 + 1L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 1 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 2 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 1 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 1 + 0X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 1 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 1 + 0X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 1 + 0X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 1 + 0X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 1 + 0X a__zeros() -> zeros() 0 >= 1 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (1): Scc: {mark# cons(X1, X2) -> mark# X1} SCC (1): Strict: {mark# cons(X1, X2) -> mark# X1} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = 0, [a__U91](x0, x1, x2, x3) = x0 + x1 + 1, [a__U93](x0, x1, x2, x3) = x0 + 1, [U91](x0, x1, x2, x3) = 0, [U92](x0, x1, x2, x3) = 0, [U93](x0, x1, x2, x3) = 0, [a__U71](x0, x1, x2) = x0 + 1, [U71](x0, x1, x2) = 0, [cons](x0, x1) = x0 + 1, [a__U41](x0, x1) = x0 + 1, [a__U51](x0, x1) = x0 + 1, [a__U61](x0, x1) = x0 + 1, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 0, [a__take](x0, x1) = 0, [U41](x0, x1) = 0, [U51](x0, x1) = 0, [U61](x0, x1) = 0, [U72](x0, x1) = 0, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = x0 + 1, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 1, [s](x0) = x0, [a__length](x0) = x0 + 1, [mark](x0) = 1, [a__U81](x0) = x0 + 1, [length](x0) = 0, [U11](x0) = 0, [U21](x0) = 0, [U31](x0) = 0, [U42](x0) = 0, [isNatIList](x0) = 0, [U52](x0) = 0, [isNatList](x0) = 0, [U62](x0) = 0, [isNat](x0) = 0, [U81](x0) = 0, [0] = 0, [zeros] = 1, [a__zeros] = 0, [tt] = 1, [nil] = 0, [mark#](x0) = x0 Strict: mark# cons(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 0 + 1X1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 2 + 0N + 0M + 2IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 2 + 1IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 1IL >= 0 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 0 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 2 >= 0 a__U81 X -> U81 X 1 + 1X >= 0 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 1X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 1 + 0X >= 2 + 0X mark isNat X -> a__isNat X 1 + 0X >= 1 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 1 + 0X >= 2 + 0X mark U61(X1, X2) -> a__U61(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 1 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 1 + 0X >= 2 + 0X mark U51(X1, X2) -> a__U51(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark isNatIList X -> a__isNatIList X 1 + 0X >= 1 + 1X mark U42 X -> a__U42 mark X 1 + 0X >= 2 + 0X mark U41(X1, X2) -> a__U41(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U31 X -> a__U31 mark X 1 + 0X >= 2 + 0X mark U21 X -> a__U21 mark X 1 + 0X >= 2 + 0X mark U11 X -> a__U11 mark X 1 + 0X >= 2 + 0X mark length X -> a__length mark X 1 + 0X >= 2 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 1 >= 0 mark s X -> s mark X 1 + 0X >= 1 + 0X mark tt() -> tt() 1 >= 1 mark zeros() -> a__zeros() 1 >= 0 mark 0() -> 0() 1 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 a__length nil() -> 0() 1 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 2 + 1N + 0L >= 2 + 0N + 0L a__length X -> length X 1 + 1X >= 0 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 2 + 0N + 0L >= 2 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 0V1 >= 2 + 0V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 1 + 0X >= 0 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 2 + 0L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 2 + 0V2 >= 2 + 1V2 a__U61(X1, X2) -> U61(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 0 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 2 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 0 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 0 + 0X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 2 + 0V2 >= 2 + 1V2 a__U41(X1, X2) -> U41(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__isNatIList zeros() -> tt() 2 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 2 + 0V2 + 1V1 >= 2 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 1 + 1X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 1 + 1V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 0 + 0X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 0 + 0X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 0 + 0X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 0 + 0X a__zeros() -> zeros() 0 >= 1 a__zeros() -> cons(0(), zeros()) 0 >= 1 Qed SCC (12): Strict: { a__isNatIList# V -> a__isNatList# V, a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2), a__isNatIList# cons(V1, V2) -> a__isNat# V1, a__U41#(tt(), V2) -> a__isNatIList# V2, a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2), a__isNatList# cons(V1, V2) -> a__isNat# V1, a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2), a__isNatList# take(V1, V2) -> a__isNat# V1, a__U51#(tt(), V2) -> a__isNatList# V2, a__U61#(tt(), V2) -> a__isNatIList# V2, a__isNat# s V1 -> a__isNat# V1, a__isNat# length V1 -> a__isNatList# V1} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = x0 + x1 + 1, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + x1 + 1, [U91](x0, x1, x2, x3) = 1, [U92](x0, x1, x2, x3) = 1, [U93](x0, x1, x2, x3) = 1, [a__U71](x0, x1, x2) = 0, [U71](x0, x1, x2) = 1, [cons](x0, x1) = x0 + x1, [a__U41](x0, x1) = 0, [a__U51](x0, x1) = 0, [a__U61](x0, x1) = 0, [a__U72](x0, x1) = 0, [take](x0, x1) = x0 + x1 + 1, [a__take](x0, x1) = 0, [U41](x0, x1) = 1, [U51](x0, x1) = 1, [U61](x0, x1) = 1, [U72](x0, x1) = 1, [a__U11](x0) = 0, [a__U21](x0) = x0, [a__U31](x0) = 0, [a__U42](x0) = 0, [a__isNatIList](x0) = 0, [a__U52](x0) = 0, [a__isNatList](x0) = 0, [a__U62](x0) = 0, [a__isNat](x0) = x0, [s](x0) = x0, [a__length](x0) = x0 + 1, [mark](x0) = x0 + 1, [a__U81](x0) = x0 + 1, [length](x0) = x0 + 1, [U11](x0) = 0, [U21](x0) = x0, [U31](x0) = 1, [U42](x0) = 1, [isNatIList](x0) = 1, [U52](x0) = 1, [isNatList](x0) = 1, [U62](x0) = 1, [isNat](x0) = x0, [U81](x0) = 1, [0] = 0, [zeros] = 0, [a__zeros] = 0, [tt] = 0, [nil] = 1, [a__U41#](x0, x1) = x0, [a__U51#](x0, x1) = x0 + x1, [a__U61#](x0, x1) = x0 + x1 + 1, [a__isNatIList#](x0) = x0, [a__isNatList#](x0) = x0, [a__isNat#](x0) = x0 Strict: a__isNat# length V1 -> a__isNatList# V1 1 + 1V1 >= 0 + 1V1 a__isNat# s V1 -> a__isNat# V1 0 + 1V1 >= 0 + 1V1 a__U61#(tt(), V2) -> a__isNatIList# V2 1 + 1V2 >= 0 + 1V2 a__U51#(tt(), V2) -> a__isNatList# V2 0 + 1V2 >= 0 + 1V2 a__isNatList# take(V1, V2) -> a__isNat# V1 1 + 1V2 + 1V1 >= 0 + 1V1 a__isNatList# take(V1, V2) -> a__U61#(a__isNat V1, V2) 1 + 1V2 + 1V1 >= 1 + 1V2 + 1V1 a__isNatList# cons(V1, V2) -> a__isNat# V1 0 + 1V2 + 1V1 >= 0 + 1V1 a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2) 0 + 1V2 + 1V1 >= 0 + 1V2 + 1V1 a__U41#(tt(), V2) -> a__isNatIList# V2 0 + 1V2 >= 0 + 1V2 a__isNatIList# cons(V1, V2) -> a__isNat# V1 0 + 1V2 + 1V1 >= 0 + 1V1 a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2) 0 + 1V2 + 1V1 >= 0 + 1V2 + 0V1 a__isNatIList# V -> a__isNatList# V 0 + 1V >= 0 + 1V Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 1 + 1X1 + 1X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 1 + 1N + 0M + 0IL >= 2 + 1N + 1M + 1IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 1 + 0N + 0M + 0IL >= 1 + 0N + 2M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 1 + 0N + 1M + 0IL >= 1 + 2N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 1 >= 1 a__U81 X -> U81 X 1 + 1X >= 1 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 1X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 1X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 2 + 0X >= 2 + 1X mark isNat X -> a__isNat X 1 + 1X >= 0 + 1X mark U72(X1, X2) -> a__U72(mark X1, X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 2 + 0X >= 0 + 0X mark U61(X1, X2) -> a__U61(mark X1, X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 2 + 0X >= 0 + 0X mark U52 X -> a__U52 mark X 2 + 0X >= 0 + 0X mark U51(X1, X2) -> a__U51(mark X1, X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatIList X -> a__isNatIList X 2 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 2 + 0X >= 0 + 0X mark U41(X1, X2) -> a__U41(mark X1, X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U31 X -> a__U31 mark X 2 + 0X >= 0 + 0X mark U21 X -> a__U21 mark X 1 + 1X >= 1 + 1X mark U11 X -> a__U11 mark X 1 + 0X >= 0 + 0X mark length X -> a__length mark X 2 + 1X >= 2 + 1X mark take(X1, X2) -> a__take(mark X1, mark X2) 2 + 1X1 + 1X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 2 >= 1 mark s X -> s mark X 1 + 1X >= 1 + 1X mark tt() -> tt() 1 >= 0 mark zeros() -> a__zeros() 1 >= 0 mark 0() -> 0() 1 >= 0 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 a__length nil() -> 0() 2 >= 0 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 1L >= 0 + 0N + 0L a__length X -> length X 1 + 1X >= 1 + 1X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 0 + 0N + 0L >= 0 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 1V1 >= 0 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 0 + 1V1 >= 0 + 1V1 a__isNat 0() -> tt() 0 >= 0 a__isNat X -> isNat X 0 + 1X >= 0 + 1X a__U72(tt(), L) -> s a__length mark L 0 + 0L >= 2 + 1L a__U72(X1, X2) -> U72(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__U62 tt() -> tt() 0 >= 0 a__U62 X -> U62 X 0 + 0X >= 1 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 0 + 0V2 >= 0 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatList nil() -> tt() 0 >= 0 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatList X -> isNatList X 0 + 0X >= 1 + 0X a__U52 tt() -> tt() 0 >= 0 a__U52 X -> U52 X 0 + 0X >= 1 + 0X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 0 + 0V2 >= 0 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 0 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 1 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 0 + 0V a__U42 tt() -> tt() 0 >= 0 a__U42 X -> U42 X 0 + 0X >= 1 + 0X a__U31 tt() -> tt() 0 >= 0 a__U31 X -> U31 X 0 + 0X >= 1 + 0X a__U21 tt() -> tt() 0 >= 0 a__U21 X -> U21 X 0 + 1X >= 0 + 1X a__U11 tt() -> tt() 0 >= 0 a__U11 X -> U11 X 0 + 0X >= 0 + 0X a__zeros() -> zeros() 0 >= 0 a__zeros() -> cons(0(), zeros()) 0 >= 0 SCCS (3): Scc: {a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2), a__U41#(tt(), V2) -> a__isNatIList# V2} Scc: {a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2), a__U51#(tt(), V2) -> a__isNatList# V2} Scc: {a__isNat# s V1 -> a__isNat# V1} SCC (2): Strict: {a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2), a__U41#(tt(), V2) -> a__isNatIList# V2} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = 0, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + x1 + 1, [U91](x0, x1, x2, x3) = 0, [U92](x0, x1, x2, x3) = 0, [U93](x0, x1, x2, x3) = 0, [a__U71](x0, x1, x2) = x0 + x1 + 1, [U71](x0, x1, x2) = 0, [cons](x0, x1) = x0 + x1, [a__U41](x0, x1) = 0, [a__U51](x0, x1) = x0 + x1, [a__U61](x0, x1) = x0, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = x0, [a__take](x0, x1) = 0, [U41](x0, x1) = 0, [U51](x0, x1) = x0 + x1, [U61](x0, x1) = x0, [U72](x0, x1) = 0, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = x0, [a__U62](x0) = 1, [a__isNat](x0) = x0, [s](x0) = x0 + 1, [a__length](x0) = x0 + 1, [mark](x0) = 1, [a__U81](x0) = 0, [length](x0) = x0 + 1, [U11](x0) = x0 + 1, [U21](x0) = x0 + 1, [U31](x0) = 0, [U42](x0) = 0, [isNatIList](x0) = 0, [U52](x0) = x0 + 1, [isNatList](x0) = x0, [U62](x0) = 1, [isNat](x0) = x0, [U81](x0) = 0, [0] = 1, [zeros] = 1, [a__zeros] = 0, [tt] = 1, [nil] = 1, [a__U41#](x0, x1) = x0 + x1, [a__isNatIList#](x0) = x0 Strict: a__U41#(tt(), V2) -> a__isNatIList# V2 1 + 1V2 >= 0 + 1V2 a__isNatIList# cons(V1, V2) -> a__U41#(a__isNat V1, V2) 0 + 1V2 + 1V1 >= 0 + 1V2 + 1V1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 0 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 1X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 1N + 0M + 0IL >= 1 + 0N + 1M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 2N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 0 >= 1 a__U81 X -> U81 X 0 + 0X >= 0 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 1X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 1 + 0X >= 0 + 0X mark isNat X -> a__isNat X 1 + 0X >= 0 + 1X mark U72(X1, X2) -> a__U72(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 1X2 + 0X3 mark U62 X -> a__U62 mark X 1 + 0X >= 1 + 0X mark U61(X1, X2) -> a__U61(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 1 + 0X >= 0 + 1X mark U52 X -> a__U52 mark X 1 + 0X >= 2 + 0X mark U51(X1, X2) -> a__U51(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 mark isNatIList X -> a__isNatIList X 1 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 1 + 0X >= 2 + 0X mark U41(X1, X2) -> a__U41(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U31 X -> a__U31 mark X 1 + 0X >= 2 + 0X mark U21 X -> a__U21 mark X 1 + 0X >= 2 + 0X mark U11 X -> a__U11 mark X 1 + 0X >= 2 + 0X mark length X -> a__length mark X 1 + 0X >= 2 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 1 >= 1 mark s X -> s mark X 1 + 0X >= 2 + 0X mark tt() -> tt() 1 >= 1 mark zeros() -> a__zeros() 1 >= 0 mark 0() -> 0() 1 >= 1 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 a__length nil() -> 0() 2 >= 1 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 1L >= 1 + 0N + 2L a__length X -> length X 1 + 1X >= 1 + 1X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 2 + 0N + 1L >= 1 + 1N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 1V1 >= 1 + 1V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 1V1 >= 1 + 1V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 0 + 1X >= 0 + 1X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 3 + 0L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 1 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U62 tt() -> tt() 1 >= 1 a__U62 X -> U62 X 1 + 0X >= 1 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 1 + 1V2 >= 1 + 1V2 a__U51(X1, X2) -> U51(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 0 + 0V2 + 1V1 >= 0 + 0V2 + 1V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 0 + 1V2 + 1V1 >= 0 + 1V2 + 1V1 a__isNatList X -> isNatList X 0 + 1X >= 0 + 1X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 1 + 1X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 0 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 1 + 1V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 0 + 0X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 0 + 0X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 1 + 1X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 1 + 1X a__zeros() -> zeros() 0 >= 1 a__zeros() -> cons(0(), zeros()) 0 >= 2 SCCS (0): SCC (2): Strict: {a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2), a__U51#(tt(), V2) -> a__isNatList# V2} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = 0, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + x1 + 1, [U91](x0, x1, x2, x3) = 0, [U92](x0, x1, x2, x3) = 0, [U93](x0, x1, x2, x3) = 0, [a__U71](x0, x1, x2) = x0 + x1 + 1, [U71](x0, x1, x2) = 0, [cons](x0, x1) = x0 + x1, [a__U41](x0, x1) = 0, [a__U51](x0, x1) = x0 + x1, [a__U61](x0, x1) = x0, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = x0, [a__take](x0, x1) = 0, [U41](x0, x1) = 0, [U51](x0, x1) = x0 + x1, [U61](x0, x1) = x0, [U72](x0, x1) = 0, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = x0, [a__U62](x0) = 1, [a__isNat](x0) = x0, [s](x0) = x0 + 1, [a__length](x0) = x0 + 1, [mark](x0) = 1, [a__U81](x0) = 0, [length](x0) = x0 + 1, [U11](x0) = x0 + 1, [U21](x0) = x0 + 1, [U31](x0) = 0, [U42](x0) = 0, [isNatIList](x0) = 0, [U52](x0) = x0 + 1, [isNatList](x0) = x0, [U62](x0) = 1, [isNat](x0) = x0, [U81](x0) = 0, [0] = 1, [zeros] = 1, [a__zeros] = 0, [tt] = 1, [nil] = 1, [a__U51#](x0, x1) = x0 + x1, [a__isNatList#](x0) = x0 Strict: a__U51#(tt(), V2) -> a__isNatList# V2 1 + 1V2 >= 0 + 1V2 a__isNatList# cons(V1, V2) -> a__U51#(a__isNat V1, V2) 0 + 1V2 + 1V1 >= 0 + 1V2 + 1V1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 0 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 1X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 1N + 0M + 0IL >= 1 + 0N + 1M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 2N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 0 >= 1 a__U81 X -> U81 X 0 + 0X >= 0 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 1X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 0X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 1 + 0X >= 0 + 0X mark isNat X -> a__isNat X 1 + 0X >= 0 + 1X mark U72(X1, X2) -> a__U72(mark X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 1X2 + 0X3 mark U62 X -> a__U62 mark X 1 + 0X >= 1 + 0X mark U61(X1, X2) -> a__U61(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark isNatList X -> a__isNatList X 1 + 0X >= 0 + 1X mark U52 X -> a__U52 mark X 1 + 0X >= 2 + 0X mark U51(X1, X2) -> a__U51(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 mark isNatIList X -> a__isNatIList X 1 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 1 + 0X >= 2 + 0X mark U41(X1, X2) -> a__U41(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U31 X -> a__U31 mark X 1 + 0X >= 2 + 0X mark U21 X -> a__U21 mark X 1 + 0X >= 2 + 0X mark U11 X -> a__U11 mark X 1 + 0X >= 2 + 0X mark length X -> a__length mark X 1 + 0X >= 2 + 0X mark take(X1, X2) -> a__take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 1 >= 1 mark s X -> s mark X 1 + 0X >= 2 + 0X mark tt() -> tt() 1 >= 1 mark zeros() -> a__zeros() 1 >= 0 mark 0() -> 0() 1 >= 1 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 a__length nil() -> 0() 2 >= 1 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 1N + 1L >= 1 + 0N + 2L a__length X -> length X 1 + 1X >= 1 + 1X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 2 + 0N + 1L >= 1 + 1N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 1V1 >= 1 + 1V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 1V1 >= 1 + 1V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 0 + 1X >= 0 + 1X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 3 + 0L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 1 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 a__U62 tt() -> tt() 1 >= 1 a__U62 X -> U62 X 1 + 0X >= 1 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 1 + 1V2 >= 1 + 1V2 a__U51(X1, X2) -> U51(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 0 + 0V2 + 1V1 >= 0 + 0V2 + 1V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 0 + 1V2 + 1V1 >= 0 + 1V2 + 1V1 a__isNatList X -> isNatList X 0 + 1X >= 0 + 1X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 1 + 1X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 0 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 0 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 0 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 1 + 1V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 0 + 0X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 0 + 0X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 1 + 1X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 1 + 1X a__zeros() -> zeros() 0 >= 1 a__zeros() -> cons(0(), zeros()) 0 >= 2 SCCS (0): SCC (1): Strict: {a__isNat# s V1 -> a__isNat# V1} Weak: { a__zeros() -> cons(0(), zeros()), a__zeros() -> zeros(), a__U11 X -> U11 X, a__U11 tt() -> tt(), a__U21 X -> U21 X, a__U21 tt() -> tt(), a__U31 X -> U31 X, a__U31 tt() -> tt(), a__U42 X -> U42 X, a__U42 tt() -> tt(), a__isNatIList V -> a__U31 a__isNatList V, a__isNatIList X -> isNatIList X, a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2), a__isNatIList zeros() -> tt(), a__U41(X1, X2) -> U41(X1, X2), a__U41(tt(), V2) -> a__U42 a__isNatIList V2, a__U52 X -> U52 X, a__U52 tt() -> tt(), a__isNatList X -> isNatList X, a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2), a__isNatList nil() -> tt(), a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2), a__U51(X1, X2) -> U51(X1, X2), a__U51(tt(), V2) -> a__U52 a__isNatList V2, a__U62 X -> U62 X, a__U62 tt() -> tt(), a__U61(X1, X2) -> U61(X1, X2), a__U61(tt(), V2) -> a__U62 a__isNatIList V2, a__U72(X1, X2) -> U72(X1, X2), a__U72(tt(), L) -> s a__length mark L, a__isNat X -> isNat X, a__isNat 0() -> tt(), a__isNat s V1 -> a__U21 a__isNat V1, a__isNat length V1 -> a__U11 a__isNatList V1, a__U71(X1, X2, X3) -> U71(X1, X2, X3), a__U71(tt(), L, N) -> a__U72(a__isNat N, L), a__length X -> length X, a__length cons(N, L) -> a__U71(a__isNatList L, L, N), a__length nil() -> 0(), mark cons(X1, X2) -> cons(mark X1, X2), mark 0() -> 0(), mark zeros() -> a__zeros(), mark tt() -> tt(), mark s X -> s mark X, mark nil() -> nil(), mark take(X1, X2) -> a__take(mark X1, mark X2), mark length X -> a__length mark X, mark U11 X -> a__U11 mark X, mark U21 X -> a__U21 mark X, mark U31 X -> a__U31 mark X, mark U41(X1, X2) -> a__U41(mark X1, X2), mark U42 X -> a__U42 mark X, mark isNatIList X -> a__isNatIList X, mark U51(X1, X2) -> a__U51(mark X1, X2), mark U52 X -> a__U52 mark X, mark isNatList X -> a__isNatList X, mark U61(X1, X2) -> a__U61(mark X1, X2), mark U62 X -> a__U62 mark X, mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3), mark U72(X1, X2) -> a__U72(mark X1, X2), mark isNat X -> a__isNat X, mark U81 X -> a__U81 mark X, mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4), mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4), mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4), a__U81 X -> U81 X, a__U81 tt() -> nil(), a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4), a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N), a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4), a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N), a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4), a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)), a__take(X1, X2) -> take(X1, X2), a__take(0(), IL) -> a__U81 a__isNatIList IL, a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [a__U92](x0, x1, x2, x3) = 0, [a__U91](x0, x1, x2, x3) = x0 + 1, [a__U93](x0, x1, x2, x3) = x0 + 1, [U91](x0, x1, x2, x3) = 1, [U92](x0, x1, x2, x3) = 1, [U93](x0, x1, x2, x3) = 0, [a__U71](x0, x1, x2) = 0, [U71](x0, x1, x2) = 1, [cons](x0, x1) = 0, [a__U41](x0, x1) = x0 + 1, [a__U51](x0, x1) = x0 + 1, [a__U61](x0, x1) = x0 + 1, [a__U72](x0, x1) = x0 + 1, [take](x0, x1) = 1, [a__take](x0, x1) = 0, [U41](x0, x1) = 1, [U51](x0, x1) = 1, [U61](x0, x1) = 1, [U72](x0, x1) = 1, [a__U11](x0) = x0 + 1, [a__U21](x0) = x0 + 1, [a__U31](x0) = x0 + 1, [a__U42](x0) = x0 + 1, [a__isNatIList](x0) = 0, [a__U52](x0) = x0 + 1, [a__isNatList](x0) = 1, [a__U62](x0) = x0 + 1, [a__isNat](x0) = 1, [s](x0) = x0 + 1, [a__length](x0) = x0 + 1, [mark](x0) = x0 + 1, [a__U81](x0) = x0 + 1, [length](x0) = 1, [U11](x0) = 1, [U21](x0) = 1, [U31](x0) = 1, [U42](x0) = 1, [isNatIList](x0) = 1, [U52](x0) = 1, [isNatList](x0) = 1, [U62](x0) = 1, [isNat](x0) = 1, [U81](x0) = 1, [0] = 1, [zeros] = 1, [a__zeros] = 0, [tt] = 1, [nil] = 1, [a__isNat#](x0) = x0 Strict: a__isNat# s V1 -> a__isNat# V1 1 + 1V1 >= 0 + 1V1 Weak: a__take(s M, cons(N, IL)) -> a__U91(a__isNatIList IL, IL, M, N) 0 + 0N + 0M + 0IL >= 1 + 0N + 0M + 0IL a__take(0(), IL) -> a__U81 a__isNatIList IL 0 + 0IL >= 1 + 0IL a__take(X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 a__U93(tt(), IL, M, N) -> cons(mark N, take(M, IL)) 2 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U93(X1, X2, X3, X4) -> U93(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 a__U91(tt(), IL, M, N) -> a__U92(a__isNat M, IL, M, N) 2 + 0N + 0M + 0IL >= 0 + 0N + 0M + 0IL a__U91(X1, X2, X3, X4) -> U91(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U92(tt(), IL, M, N) -> a__U93(a__isNat N, IL, M, N) 0 + 0N + 0M + 0IL >= 2 + 0N + 0M + 0IL a__U92(X1, X2, X3, X4) -> U92(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 a__U81 tt() -> nil() 2 >= 1 a__U81 X -> U81 X 1 + 1X >= 1 + 0X mark U93(X1, X2, X3, X4) -> a__U93(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 0X4 mark U92(X1, X2, X3, X4) -> a__U92(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U91(X1, X2, X3, X4) -> a__U91(mark X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 0X4 >= 2 + 1X1 + 0X2 + 0X3 + 0X4 mark U81 X -> a__U81 mark X 2 + 0X >= 2 + 1X mark isNat X -> a__isNat X 2 + 0X >= 1 + 0X mark U72(X1, X2) -> a__U72(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark U71(X1, X2, X3) -> a__U71(mark X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark U62 X -> a__U62 mark X 2 + 0X >= 2 + 1X mark U61(X1, X2) -> a__U61(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark isNatList X -> a__isNatList X 2 + 0X >= 1 + 0X mark U52 X -> a__U52 mark X 2 + 0X >= 2 + 1X mark U51(X1, X2) -> a__U51(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark isNatIList X -> a__isNatIList X 2 + 0X >= 0 + 0X mark U42 X -> a__U42 mark X 2 + 0X >= 2 + 1X mark U41(X1, X2) -> a__U41(mark X1, X2) 2 + 0X1 + 0X2 >= 2 + 1X1 + 0X2 mark U31 X -> a__U31 mark X 2 + 0X >= 2 + 1X mark U21 X -> a__U21 mark X 2 + 0X >= 2 + 1X mark U11 X -> a__U11 mark X 2 + 0X >= 2 + 1X mark length X -> a__length mark X 2 + 0X >= 2 + 1X mark take(X1, X2) -> a__take(mark X1, mark X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> nil() 2 >= 1 mark s X -> s mark X 2 + 1X >= 2 + 1X mark tt() -> tt() 2 >= 1 mark zeros() -> a__zeros() 2 >= 0 mark 0() -> 0() 2 >= 1 mark cons(X1, X2) -> cons(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 a__length nil() -> 0() 2 >= 1 a__length cons(N, L) -> a__U71(a__isNatList L, L, N) 1 + 0N + 0L >= 0 + 0N + 0L a__length X -> length X 1 + 1X >= 1 + 0X a__U71(tt(), L, N) -> a__U72(a__isNat N, L) 0 + 0N + 0L >= 2 + 0N + 0L a__U71(X1, X2, X3) -> U71(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 a__isNat length V1 -> a__U11 a__isNatList V1 1 + 0V1 >= 2 + 0V1 a__isNat s V1 -> a__U21 a__isNat V1 1 + 0V1 >= 2 + 0V1 a__isNat 0() -> tt() 1 >= 1 a__isNat X -> isNat X 1 + 0X >= 1 + 0X a__U72(tt(), L) -> s a__length mark L 2 + 0L >= 3 + 1L a__U72(X1, X2) -> U72(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__U61(tt(), V2) -> a__U62 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U61(X1, X2) -> U61(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__U62 tt() -> tt() 2 >= 1 a__U62 X -> U62 X 1 + 1X >= 1 + 0X a__U51(tt(), V2) -> a__U52 a__isNatList V2 2 + 0V2 >= 2 + 0V2 a__U51(X1, X2) -> U51(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatList take(V1, V2) -> a__U61(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList nil() -> tt() 1 >= 1 a__isNatList cons(V1, V2) -> a__U51(a__isNat V1, V2) 1 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatList X -> isNatList X 1 + 0X >= 1 + 0X a__U52 tt() -> tt() 2 >= 1 a__U52 X -> U52 X 1 + 1X >= 1 + 0X a__U41(tt(), V2) -> a__U42 a__isNatIList V2 2 + 0V2 >= 1 + 0V2 a__U41(X1, X2) -> U41(X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 a__isNatIList zeros() -> tt() 0 >= 1 a__isNatIList cons(V1, V2) -> a__U41(a__isNat V1, V2) 0 + 0V2 + 0V1 >= 2 + 0V2 + 0V1 a__isNatIList X -> isNatIList X 0 + 0X >= 1 + 0X a__isNatIList V -> a__U31 a__isNatList V 0 + 0V >= 2 + 0V a__U42 tt() -> tt() 2 >= 1 a__U42 X -> U42 X 1 + 1X >= 1 + 0X a__U31 tt() -> tt() 2 >= 1 a__U31 X -> U31 X 1 + 1X >= 1 + 0X a__U21 tt() -> tt() 2 >= 1 a__U21 X -> U21 X 1 + 1X >= 1 + 0X a__U11 tt() -> tt() 2 >= 1 a__U11 X -> U11 X 1 + 1X >= 1 + 0X a__zeros() -> zeros() 0 >= 1 a__zeros() -> cons(0(), zeros()) 0 >= 0 Qed