MAYBE Time: 4.659519 TRS: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} DP: DP: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2), mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# 0() -> active# 0(), mark# zeros() -> active# zeros(), mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U12(X1, X2) -> U12#(mark X1, X2), mark# tt() -> active# tt(), mark# U11(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# U11(X1, X2) -> U11#(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# s X -> s# mark X, mark# length X -> mark# X, mark# length X -> active# length mark X, mark# length X -> length# mark X, mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), mark# take(X1, X2) -> take#(mark X1, mark X2), mark# nil() -> active# nil(), cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2), active# zeros() -> mark# cons(0(), zeros()), active# zeros() -> cons#(0(), zeros()), active# U12(tt(), L) -> mark# s length L, active# U12(tt(), L) -> s# length L, active# U12(tt(), L) -> length# L, active# U11(tt(), L) -> mark# U12(tt(), L), active# U11(tt(), L) -> U12#(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# length cons(N, L) -> U11#(tt(), L), active# length nil() -> mark# 0(), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U22(tt(), IL, M, N) -> U23#(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> U22#(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL)), active# U23(tt(), IL, M, N) -> take#(M, IL), active# take(0(), IL) -> mark# nil(), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), active# take(s M, cons(N, IL)) -> U21#(tt(), IL, M, N), U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2), U11#(X1, mark X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2), U11#(active X1, X2) -> U11#(X1, X2), s# mark X -> s# X, s# active X -> s# X, length# mark X -> length# X, length# active X -> length# X, U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), take#(X1, mark X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2), take#(active X1, X2) -> take#(X1, X2)} TRS: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} UR: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} EDG: { (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> U21#(tt(), IL, M, N)) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# take(0(), IL) -> mark# nil()) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U23(tt(), IL, M, N) -> take#(M, IL)) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL))) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL))) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U21(tt(), IL, M, N) -> U22#(tt(), IL, M, N)) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U22(tt(), IL, M, N) -> U23#(tt(), IL, M, N)) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N)) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# length nil() -> mark# 0()) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# length cons(N, L) -> U11#(tt(), L)) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# length cons(N, L) -> mark# U11(tt(), L)) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U11(tt(), L) -> U12#(tt(), L)) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U11(tt(), L) -> mark# U12(tt(), L)) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U12(tt(), L) -> length# L) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U12(tt(), L) -> s# length L) (mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# take(X1, X2) -> take#(mark X1, mark X2)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# take(X1, X2) -> active# take(mark X1, mark X2)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# take(X1, X2) -> mark# X2) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# take(X1, X2) -> mark# X1) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U23(X1, X2, X3, X4) -> mark# X1) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U21(X1, X2, X3, X4) -> mark# X1) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U22(X1, X2, X3, X4) -> mark# X1) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# length X -> length# mark X) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# length X -> active# length mark X) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# length X -> mark# X) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# s X -> s# mark X) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# s X -> active# s mark X) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# s X -> mark# X) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U11(X1, X2) -> U11#(mark X1, X2)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U11(X1, X2) -> active# U11(mark X1, X2)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U11(X1, X2) -> mark# X1) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# U12(X1, X2) -> mark# X1) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), mark# cons(X1, X2) -> mark# X1) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# take(X1, X2) -> take#(mark X1, mark X2)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# take(X1, X2) -> active# take(mark X1, mark X2)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# take(X1, X2) -> mark# X2) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# take(X1, X2) -> mark# X1) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U23(X1, X2, X3, X4) -> mark# X1) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U21(X1, X2, X3, X4) -> mark# X1) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U22(X1, X2, X3, X4) -> mark# X1) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# length X -> length# mark X) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# length X -> active# length mark X) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# length X -> mark# X) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# s X -> s# mark X) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# s X -> active# s mark X) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# s X -> mark# X) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U11(X1, X2) -> U11#(mark X1, X2)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U11(X1, X2) -> active# U11(mark X1, X2)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U11(X1, X2) -> mark# X1) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# U12(X1, X2) -> mark# X1) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N), mark# cons(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# nil() -> active# nil()) (mark# length X -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# length X -> mark# X, mark# take(X1, X2) -> active# 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# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U23(X1, X2, X3, X4) -> mark# X1) (mark# length X -> mark# X, mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U21(X1, X2, X3, X4) -> mark# X1) (mark# length X -> mark# X, mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (mark# length X -> mark# X, mark# U22(X1, X2, X3, X4) -> mark# X1) (mark# length X -> mark# X, mark# length X -> length# mark X) (mark# length X -> mark# X, mark# length X -> active# length mark X) (mark# length X -> mark# X, mark# length X -> mark# X) (mark# length X -> mark# X, mark# s X -> s# mark X) (mark# length X -> mark# X, mark# s X -> active# s mark X) (mark# length X -> mark# X, mark# s X -> mark# X) (mark# length X -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2)) (mark# length X -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2)) (mark# length X -> mark# X, mark# U11(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# tt() -> active# tt()) (mark# length X -> mark# X, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# length X -> mark# X, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# length X -> mark# X, mark# U12(X1, X2) -> mark# X1) (mark# length X -> mark# X, mark# zeros() -> active# zeros()) (mark# length X -> mark# X, mark# 0() -> active# 0()) (mark# length X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# length X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# length X -> mark# X, mark# cons(X1, X2) -> mark# X1) (s# active X -> s# X, s# active X -> s# X) (s# active X -> s# X, s# mark X -> s# X) (length# active X -> length# X, length# active X -> length# X) (length# active X -> length# X, length# mark X -> length# X) (mark# length X -> length# mark X, length# active X -> length# X) (mark# length X -> length# mark X, length# mark X -> length# X) (active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL)), cons#(X1, active X2) -> cons#(X1, X2)) (active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL)), cons#(X1, mark X2) -> cons#(X1, X2)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# take(s M, cons(N, IL)) -> U21#(tt(), IL, M, N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# take(0(), IL) -> mark# nil()) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U23(tt(), IL, M, N) -> take#(M, IL)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL))) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL))) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U21(tt(), IL, M, N) -> U22#(tt(), IL, M, N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U22(tt(), IL, M, N) -> U23#(tt(), IL, M, N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# length nil() -> mark# 0()) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# length cons(N, L) -> U11#(tt(), L)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# length cons(N, L) -> mark# U11(tt(), L)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U11(tt(), L) -> U12#(tt(), L)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U11(tt(), L) -> mark# U12(tt(), L)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U12(tt(), L) -> length# L) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U12(tt(), L) -> s# length L) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U12(tt(), L) -> mark# s length L) (active# length cons(N, L) -> mark# U11(tt(), L), mark# take(X1, X2) -> take#(mark X1, mark X2)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# take(X1, X2) -> active# take(mark X1, mark X2)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# take(X1, X2) -> mark# X2) (active# length cons(N, L) -> mark# U11(tt(), L), mark# take(X1, X2) -> mark# X1) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U23(X1, X2, X3, X4) -> mark# X1) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U21(X1, X2, X3, X4) -> mark# X1) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U22(X1, X2, X3, X4) -> mark# X1) (active# length cons(N, L) -> mark# U11(tt(), L), mark# length X -> length# mark X) (active# length cons(N, L) -> mark# U11(tt(), L), mark# length X -> active# length mark X) (active# length cons(N, L) -> mark# U11(tt(), L), mark# length X -> mark# X) (active# length cons(N, L) -> mark# U11(tt(), L), mark# s X -> s# mark X) (active# length cons(N, L) -> mark# U11(tt(), L), mark# s X -> active# s mark X) (active# length cons(N, L) -> mark# U11(tt(), L), mark# s X -> mark# X) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U11(X1, X2) -> U11#(mark X1, X2)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U11(X1, X2) -> active# U11(mark X1, X2)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U11(X1, X2) -> mark# X1) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# U12(X1, X2) -> mark# X1) (active# length cons(N, L) -> mark# U11(tt(), L), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# length cons(N, L) -> mark# U11(tt(), L), mark# cons(X1, X2) -> mark# X1) (mark# U12(X1, X2) -> U12#(mark X1, X2), U12#(active X1, X2) -> U12#(X1, X2)) (mark# U12(X1, X2) -> U12#(mark X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(mark X1, X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (U12#(X1, mark X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)) (U12#(X1, mark X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)) (U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)) (U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, mark X2) -> U12#(X1, X2)) (U12#(mark X1, X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)) (U12#(mark X1, X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)) (U12#(mark X1, X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)) (U12#(mark X1, X2) -> U12#(X1, X2), U12#(X1, mark X2) -> U12#(X1, X2)) (U11#(X1, mark X2) -> U11#(X1, X2), U11#(active X1, X2) -> U11#(X1, X2)) (U11#(X1, mark X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2)) (U11#(X1, mark X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2)) (U11#(X1, mark X2) -> U11#(X1, X2), U11#(X1, mark X2) -> U11#(X1, X2)) (U11#(mark X1, X2) -> U11#(X1, X2), U11#(active X1, X2) -> U11#(X1, X2)) (U11#(mark X1, X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2)) (U11#(mark X1, X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2)) (U11#(mark X1, X2) -> U11#(X1, X2), U11#(X1, mark X2) -> U11#(X1, X2)) (take#(X1, mark X2) -> take#(X1, X2), take#(active X1, X2) -> take#(X1, X2)) (take#(X1, mark X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2)) (take#(X1, mark X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2)) (take#(X1, mark X2) -> take#(X1, X2), take#(X1, mark X2) -> take#(X1, X2)) (take#(mark X1, X2) -> take#(X1, X2), take#(active X1, X2) -> take#(X1, X2)) (take#(mark X1, X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2)) (take#(mark X1, X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2)) (take#(mark X1, X2) -> take#(X1, X2), take#(X1, mark X2) -> take#(X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# nil() -> active# nil()) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2)) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# cons(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# U23(X1, X2, X3, X4) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (mark# cons(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# length X -> length# mark X) (mark# cons(X1, X2) -> mark# X1, mark# length X -> active# length mark X) (mark# cons(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# cons(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# cons(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# cons(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# tt() -> active# tt()) (mark# cons(X1, X2) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# cons(X1, X2) -> mark# X1, mark# zeros() -> active# zeros()) (mark# cons(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# nil() -> active# nil()) (mark# U11(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# U11(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2)) (mark# U11(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U11(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (mark# U11(X1, X2) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (mark# U11(X1, X2) -> mark# X1, mark# U23(X1, X2, X3, X4) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (mark# U11(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (mark# U11(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (mark# U11(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (mark# U11(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# length X -> length# mark X) (mark# U11(X1, X2) -> mark# X1, mark# length X -> active# length mark X) (mark# U11(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U11(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# U11(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# U11(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U11(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# tt() -> active# tt()) (mark# U11(X1, X2) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# U11(X1, X2) -> mark# X1, mark# zeros() -> active# zeros()) (mark# U11(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# U11(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# U11(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# nil() -> active# nil()) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> mark# X1) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> mark# X1) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> mark# X1) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# length X -> length# mark X) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# length X -> active# length mark X) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# length X -> mark# X) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# s X -> s# mark X) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# s X -> active# s mark X) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# tt() -> active# tt()) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# zeros() -> active# zeros()) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# 0() -> active# 0()) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# U21(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# nil() -> active# nil()) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# 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# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U23(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# length X -> length# mark X) (mark# take(X1, X2) -> mark# X1, mark# length X -> active# length mark X) (mark# take(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# take(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# take(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# take(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# tt() -> active# tt()) (mark# take(X1, X2) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X1, mark# zeros() -> active# zeros()) (mark# take(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# take(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# take(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> U21#(tt(), IL, M, N)) (mark# length X -> active# length mark X, active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)) (mark# length X -> active# length mark X, active# take(0(), IL) -> mark# nil()) (mark# length X -> active# length mark X, active# U23(tt(), IL, M, N) -> take#(M, IL)) (mark# length X -> active# length mark X, active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL))) (mark# length X -> active# length mark X, active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL))) (mark# length X -> active# length mark X, active# U21(tt(), IL, M, N) -> U22#(tt(), IL, M, N)) (mark# length X -> active# length mark X, active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)) (mark# length X -> active# length mark X, active# U22(tt(), IL, M, N) -> U23#(tt(), IL, M, N)) (mark# length X -> active# length mark X, active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N)) (mark# length X -> active# length mark X, active# length nil() -> mark# 0()) (mark# length X -> active# length mark X, active# length cons(N, L) -> U11#(tt(), L)) (mark# length X -> active# length mark X, active# length cons(N, L) -> mark# U11(tt(), L)) (mark# length X -> active# length mark X, active# U11(tt(), L) -> U12#(tt(), L)) (mark# length X -> active# length mark X, active# U11(tt(), L) -> mark# U12(tt(), L)) (mark# length X -> active# length mark X, active# U12(tt(), L) -> length# L) (mark# length X -> active# length mark X, active# U12(tt(), L) -> s# length L) (mark# length X -> active# length mark X, active# U12(tt(), L) -> mark# s length L) (mark# zeros() -> active# zeros(), active# zeros() -> cons#(0(), zeros())) (mark# zeros() -> active# zeros(), active# zeros() -> mark# cons(0(), zeros())) (active# take(0(), IL) -> mark# nil(), mark# nil() -> active# nil()) (mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4)) (U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4)) (U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4)) (U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4)) (U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4)) (U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4)) (U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4)) (U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4)) (U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4)) (active# zeros() -> mark# cons(0(), zeros()), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# zeros() -> mark# cons(0(), zeros()), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# zeros() -> mark# cons(0(), zeros()), mark# cons(X1, X2) -> mark# X1) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12(tt(), L) -> mark# s length L) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12(tt(), L) -> s# length L) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12(tt(), L) -> length# L) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U11(tt(), L) -> mark# U12(tt(), L)) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U11(tt(), L) -> U12#(tt(), L)) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length cons(N, L) -> mark# U11(tt(), L)) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length cons(N, L) -> U11#(tt(), L)) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# length nil() -> mark# 0()) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N)) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U22(tt(), IL, M, N) -> U23#(tt(), IL, M, N)) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U21(tt(), IL, M, N) -> U22#(tt(), IL, M, N)) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL))) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL))) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U23(tt(), IL, M, N) -> take#(M, IL)) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(0(), IL) -> mark# nil()) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)) (mark# take(X1, X2) -> active# take(mark X1, mark X2), active# take(s M, cons(N, IL)) -> U21#(tt(), IL, M, N)) (mark# take(X1, X2) -> mark# X2, mark# cons(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# 0() -> active# 0()) (mark# take(X1, X2) -> mark# X2, mark# zeros() -> active# zeros()) (mark# take(X1, X2) -> mark# X2, mark# U12(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# tt() -> active# tt()) (mark# take(X1, X2) -> mark# X2, mark# U11(X1, X2) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U11(X1, X2) -> active# U11(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# U11(X1, X2) -> U11#(mark X1, X2)) (mark# take(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# s X -> active# s mark X) (mark# take(X1, X2) -> mark# X2, mark# s X -> s# mark X) (mark# take(X1, X2) -> mark# X2, mark# length X -> mark# X) (mark# take(X1, X2) -> mark# X2, mark# length X -> active# length mark X) (mark# take(X1, X2) -> mark# X2, mark# length X -> length# mark X) (mark# take(X1, X2) -> mark# X2, mark# U22(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X2, mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X2, mark# U21(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X2, mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X2, mark# U23(X1, X2, X3, X4) -> mark# X1) (mark# take(X1, X2) -> mark# X2, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (mark# take(X1, X2) -> mark# X2, mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (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) -> active# take(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# take(X1, X2) -> mark# X2, mark# nil() -> active# nil()) (U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4)) (U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4)) (U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)) (U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4)) (U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4)) (U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4)) (U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4)) (U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)) (mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)) (mark# take(X1, X2) -> take#(mark X1, mark X2), take#(X1, mark X2) -> take#(X1, X2)) (mark# take(X1, X2) -> take#(mark X1, mark X2), take#(X1, active X2) -> take#(X1, X2)) (mark# take(X1, X2) -> take#(mark X1, mark X2), take#(mark X1, X2) -> take#(X1, X2)) (mark# take(X1, X2) -> take#(mark X1, mark X2), take#(active X1, X2) -> take#(X1, X2)) (active# length nil() -> mark# 0(), mark# 0() -> active# 0()) (active# U12(tt(), L) -> mark# s length L, mark# cons(X1, X2) -> mark# X1) (active# U12(tt(), L) -> mark# s length L, mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# U12(tt(), L) -> mark# s length L, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# U12(tt(), L) -> mark# s length L, mark# U12(X1, X2) -> mark# X1) (active# U12(tt(), L) -> mark# s length L, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U12(tt(), L) -> mark# s length L, mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U12(tt(), L) -> mark# s length L, mark# U11(X1, X2) -> mark# X1) (active# U12(tt(), L) -> mark# s length L, mark# U11(X1, X2) -> active# U11(mark X1, X2)) (active# U12(tt(), L) -> mark# s length L, mark# U11(X1, X2) -> U11#(mark X1, X2)) (active# U12(tt(), L) -> mark# s length L, mark# s X -> mark# X) (active# U12(tt(), L) -> mark# s length L, mark# s X -> active# s mark X) (active# U12(tt(), L) -> mark# s length L, mark# s X -> s# mark X) (active# U12(tt(), L) -> mark# s length L, mark# length X -> mark# X) (active# U12(tt(), L) -> mark# s length L, mark# length X -> active# length mark X) (active# U12(tt(), L) -> mark# s length L, mark# length X -> length# mark X) (active# U12(tt(), L) -> mark# s length L, mark# U22(X1, X2, X3, X4) -> mark# X1) (active# U12(tt(), L) -> mark# s length L, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (active# U12(tt(), L) -> mark# s length L, mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (active# U12(tt(), L) -> mark# s length L, mark# U21(X1, X2, X3, X4) -> mark# X1) (active# U12(tt(), L) -> mark# s length L, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (active# U12(tt(), L) -> mark# s length L, mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (active# U12(tt(), L) -> mark# s length L, mark# U23(X1, X2, X3, X4) -> mark# X1) (active# U12(tt(), L) -> mark# s length L, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (active# U12(tt(), L) -> mark# s length L, mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (active# U12(tt(), L) -> mark# s length L, mark# take(X1, X2) -> mark# X1) (active# U12(tt(), L) -> mark# s length L, mark# take(X1, X2) -> mark# X2) (active# U12(tt(), L) -> mark# s length L, mark# take(X1, X2) -> active# take(mark X1, mark X2)) (active# U12(tt(), L) -> mark# s length L, mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# s X -> active# s mark X, active# U12(tt(), L) -> mark# s length L) (mark# s X -> active# s mark X, active# U12(tt(), L) -> s# length L) (mark# s X -> active# s mark X, active# U12(tt(), L) -> length# L) (mark# s X -> active# s mark X, active# U11(tt(), L) -> mark# U12(tt(), L)) (mark# s X -> active# s mark X, active# U11(tt(), L) -> U12#(tt(), L)) (mark# s X -> active# s mark X, active# length cons(N, L) -> mark# U11(tt(), L)) (mark# s X -> active# s mark X, active# length cons(N, L) -> U11#(tt(), L)) (mark# s X -> active# s mark X, active# length nil() -> mark# 0()) (mark# s X -> active# s mark X, active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N)) (mark# s X -> active# s mark X, active# U22(tt(), IL, M, N) -> U23#(tt(), IL, M, N)) (mark# s X -> active# s mark X, active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)) (mark# s X -> active# s mark X, active# U21(tt(), IL, M, N) -> U22#(tt(), IL, M, N)) (mark# s X -> active# s mark X, active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL))) (mark# s X -> active# s mark X, active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL))) (mark# s X -> active# s mark X, active# U23(tt(), IL, M, N) -> take#(M, IL)) (mark# s X -> active# s mark X, active# take(0(), IL) -> mark# nil()) (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)) (mark# s X -> active# s mark X, active# take(s M, cons(N, IL)) -> U21#(tt(), IL, M, N)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# 0() -> active# 0()) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# zeros() -> active# zeros()) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# tt() -> active# tt()) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# s X -> active# s mark X) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# s X -> s# mark X) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# length X -> mark# X) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# length X -> active# length mark X) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# length X -> length# mark X) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> mark# X1) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> mark# X1) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> mark# X1) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# U23(X1, X2, X3, X4) -> mark# X1, mark# nil() -> active# nil()) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# 0() -> active# 0()) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# zeros() -> active# zeros()) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# tt() -> active# tt()) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# s X -> mark# X) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# s X -> active# s mark X) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# s X -> s# mark X) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# length X -> mark# X) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# length X -> active# length mark X) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# length X -> length# mark X) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> mark# X1) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> mark# X1) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> mark# X1) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# U22(X1, X2, X3, X4) -> mark# X1, mark# nil() -> active# nil()) (mark# U12(X1, X2) -> mark# X1, mark# cons(X1, X2) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# U12(X1, X2) -> mark# X1, mark# zeros() -> active# zeros()) (mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# tt() -> active# tt()) (mark# U12(X1, X2) -> mark# X1, mark# U11(X1, X2) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# U11(X1, X2) -> U11#(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U12(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# U12(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# U12(X1, X2) -> mark# X1, mark# length X -> mark# X) (mark# U12(X1, X2) -> mark# X1, mark# length X -> active# length mark X) (mark# U12(X1, X2) -> mark# X1, mark# length X -> length# mark X) (mark# U12(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (mark# U12(X1, X2) -> mark# X1, mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (mark# U12(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (mark# U12(X1, X2) -> mark# X1, mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (mark# U12(X1, X2) -> mark# X1, mark# U23(X1, X2, X3, X4) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (mark# U12(X1, X2) -> mark# X1, mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (mark# U12(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2) (mark# U12(X1, X2) -> mark# X1, mark# take(X1, X2) -> active# take(mark X1, mark X2)) (mark# U12(X1, X2) -> mark# X1, mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# U12(X1, X2) -> mark# X1, mark# nil() -> active# nil()) (take#(active X1, X2) -> take#(X1, X2), take#(X1, mark X2) -> take#(X1, X2)) (take#(active X1, X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2)) (take#(active X1, X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2)) (take#(active X1, X2) -> take#(X1, X2), take#(active X1, X2) -> take#(X1, X2)) (take#(X1, active X2) -> take#(X1, X2), take#(X1, mark X2) -> take#(X1, X2)) (take#(X1, active X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2)) (take#(X1, active X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2)) (take#(X1, active X2) -> take#(X1, X2), take#(active X1, X2) -> take#(X1, X2)) (U11#(active X1, X2) -> U11#(X1, X2), U11#(X1, mark X2) -> U11#(X1, X2)) (U11#(active X1, X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2)) (U11#(active X1, X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2)) (U11#(active X1, X2) -> U11#(X1, X2), U11#(active X1, X2) -> U11#(X1, X2)) (U11#(X1, active X2) -> U11#(X1, X2), U11#(X1, mark X2) -> U11#(X1, X2)) (U11#(X1, active X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2)) (U11#(X1, active X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2)) (U11#(X1, active X2) -> U11#(X1, X2), U11#(active X1, X2) -> U11#(X1, X2)) (U12#(active X1, X2) -> U12#(X1, X2), U12#(X1, mark X2) -> U12#(X1, X2)) (U12#(active X1, X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)) (U12#(active X1, X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)) (U12#(active X1, X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)) (U12#(X1, active X2) -> U12#(X1, X2), U12#(X1, mark X2) -> U12#(X1, X2)) (U12#(X1, active X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)) (U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)) (U12#(X1, active X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(active X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(X1, mark X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (cons#(X1, active X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (mark# U11(X1, X2) -> U11#(mark X1, X2), U11#(mark X1, X2) -> U11#(X1, X2)) (mark# U11(X1, X2) -> U11#(mark X1, X2), U11#(active X1, X2) -> U11#(X1, X2)) (mark# cons(X1, X2) -> cons#(mark X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)) (mark# cons(X1, X2) -> cons#(mark X1, X2), cons#(active X1, X2) -> cons#(X1, X2)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# cons(X1, X2) -> mark# X1) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U12(X1, X2) -> mark# X1) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U11(X1, X2) -> mark# X1) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U11(X1, X2) -> active# U11(mark X1, X2)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U11(X1, X2) -> U11#(mark X1, X2)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# s X -> mark# X) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# s X -> active# s mark X) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# s X -> s# mark X) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# length X -> mark# X) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# length X -> active# length mark X) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# length X -> length# mark X) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U22(X1, X2, X3, X4) -> mark# X1) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U21(X1, X2, X3, X4) -> mark# X1) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U23(X1, X2, X3, X4) -> mark# X1) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# take(X1, X2) -> mark# X1) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# take(X1, X2) -> mark# X2) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# take(X1, X2) -> active# take(mark X1, mark X2)) (active# U11(tt(), L) -> mark# U12(tt(), L), mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U12(tt(), L) -> mark# s length L) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U12(tt(), L) -> s# length L) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U12(tt(), L) -> length# L) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U11(tt(), L) -> mark# U12(tt(), L)) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U11(tt(), L) -> U12#(tt(), L)) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length cons(N, L) -> mark# U11(tt(), L)) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length cons(N, L) -> U11#(tt(), L)) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# length nil() -> mark# 0()) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N)) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U22(tt(), IL, M, N) -> U23#(tt(), IL, M, N)) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U21(tt(), IL, M, N) -> U22#(tt(), IL, M, N)) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL))) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL))) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# U23(tt(), IL, M, N) -> take#(M, IL)) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(0(), IL) -> mark# nil()) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)) (mark# U11(X1, X2) -> active# U11(mark X1, X2), active# take(s M, cons(N, IL)) -> U21#(tt(), IL, M, N)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U12(tt(), L) -> mark# s length L) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U12(tt(), L) -> s# length L) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U12(tt(), L) -> length# L) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U11(tt(), L) -> mark# U12(tt(), L)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U11(tt(), L) -> U12#(tt(), L)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length cons(N, L) -> mark# U11(tt(), L)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length cons(N, L) -> U11#(tt(), L)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# length nil() -> mark# 0()) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U22(tt(), IL, M, N) -> U23#(tt(), IL, M, N)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U21(tt(), IL, M, N) -> U22#(tt(), IL, M, N)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL))) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL))) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# U23(tt(), IL, M, N) -> take#(M, IL)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(0(), IL) -> mark# nil()) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)) (mark# cons(X1, X2) -> active# cons(mark X1, X2), active# take(s M, cons(N, IL)) -> U21#(tt(), IL, M, N)) (active# U12(tt(), L) -> s# length L, s# mark X -> s# X) (active# U12(tt(), L) -> s# length L, s# active X -> s# X) (mark# s X -> s# mark X, s# mark X -> s# X) (mark# s X -> s# mark X, s# active X -> s# X) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# cons(X1, X2) -> mark# X1) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U12(X1, X2) -> mark# X1) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U11(X1, X2) -> mark# X1) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U11(X1, X2) -> active# U11(mark X1, X2)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U11(X1, X2) -> U11#(mark X1, X2)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# s X -> mark# X) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# s X -> active# s mark X) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# s X -> s# mark X) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# length X -> mark# X) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# length X -> active# length mark X) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# length X -> length# mark X) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U22(X1, X2, X3, X4) -> mark# X1) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U21(X1, X2, X3, X4) -> mark# X1) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U23(X1, X2, X3, X4) -> mark# X1) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# take(X1, X2) -> mark# X1) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# take(X1, X2) -> mark# X2) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# take(X1, X2) -> active# take(mark X1, mark X2)) (active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), mark# take(X1, X2) -> take#(mark X1, mark X2)) (length# mark X -> length# X, length# mark X -> length# X) (length# mark X -> length# X, length# active X -> length# X) (s# mark X -> s# X, s# mark X -> s# X) (s# mark X -> s# X, s# active X -> s# X) (mark# s X -> mark# X, mark# cons(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# cons(X1, X2) -> cons#(mark X1, X2)) (mark# s X -> mark# X, mark# cons(X1, X2) -> active# cons(mark X1, X2)) (mark# s X -> mark# X, mark# 0() -> active# 0()) (mark# s X -> mark# X, mark# zeros() -> active# zeros()) (mark# s X -> mark# X, mark# U12(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# s X -> mark# X, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# s X -> mark# X, mark# tt() -> active# tt()) (mark# s X -> mark# X, mark# U11(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U11(X1, X2) -> active# U11(mark X1, X2)) (mark# s X -> mark# X, mark# U11(X1, X2) -> U11#(mark X1, X2)) (mark# s X -> mark# X, mark# s X -> mark# X) (mark# s X -> mark# X, mark# s X -> active# s mark X) (mark# s X -> mark# X, mark# s X -> s# mark X) (mark# s X -> mark# X, mark# length X -> mark# X) (mark# s X -> mark# X, mark# length X -> active# length mark X) (mark# s X -> mark# X, mark# length X -> length# mark X) (mark# s X -> mark# X, mark# U22(X1, X2, X3, X4) -> mark# X1) (mark# s X -> mark# X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# U21(X1, X2, X3, X4) -> mark# X1) (mark# s X -> mark# X, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# U23(X1, X2, X3, X4) -> mark# X1) (mark# s X -> mark# X, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (mark# s X -> mark# X, mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (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) -> active# take(mark X1, mark X2)) (mark# s X -> mark# X, mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# s X -> mark# X, mark# nil() -> active# nil()) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# cons(X1, X2) -> mark# X1) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# cons(X1, X2) -> cons#(mark X1, X2)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# cons(X1, X2) -> active# cons(mark X1, X2)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U12(X1, X2) -> mark# X1) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U11(X1, X2) -> mark# X1) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U11(X1, X2) -> active# U11(mark X1, X2)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U11(X1, X2) -> U11#(mark X1, X2)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# s X -> mark# X) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# s X -> active# s mark X) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# s X -> s# mark X) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# length X -> mark# X) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# length X -> active# length mark X) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# length X -> length# mark X) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U22(X1, X2, X3, X4) -> mark# X1) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U22(X1, X2, X3, X4) -> U22#(mark X1, X2, X3, X4)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U21(X1, X2, X3, X4) -> mark# X1) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U21(X1, X2, X3, X4) -> U21#(mark X1, X2, X3, X4)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U23(X1, X2, X3, X4) -> mark# X1) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# U23(X1, X2, X3, X4) -> U23#(mark X1, X2, X3, X4)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# take(X1, X2) -> mark# X1) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# take(X1, X2) -> mark# X2) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# take(X1, X2) -> active# take(mark X1, mark X2)) (active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), mark# take(X1, X2) -> take#(mark X1, mark X2)) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> s# length L) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> length# L) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U11(tt(), L) -> mark# U12(tt(), L)) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U11(tt(), L) -> U12#(tt(), L)) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# length cons(N, L) -> mark# U11(tt(), L)) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# length cons(N, L) -> U11#(tt(), L)) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# length nil() -> mark# 0()) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N)) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U22(tt(), IL, M, N) -> U23#(tt(), IL, M, N)) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U21(tt(), IL, M, N) -> U22#(tt(), IL, M, N)) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL))) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL))) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U23(tt(), IL, M, N) -> take#(M, IL)) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# take(0(), IL) -> mark# nil()) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)) (mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> U21#(tt(), IL, M, N)) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U12(tt(), L) -> s# length L) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U12(tt(), L) -> length# L) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U11(tt(), L) -> mark# U12(tt(), L)) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U11(tt(), L) -> U12#(tt(), L)) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# length cons(N, L) -> mark# U11(tt(), L)) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# length cons(N, L) -> U11#(tt(), L)) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# length nil() -> mark# 0()) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N)) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U22(tt(), IL, M, N) -> U23#(tt(), IL, M, N)) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U21(tt(), IL, M, N) -> U22#(tt(), IL, M, N)) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL))) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U23(tt(), IL, M, N) -> cons#(N, take(M, IL))) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# U23(tt(), IL, M, N) -> take#(M, IL)) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# take(0(), IL) -> mark# nil()) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)) (mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), active# take(s M, cons(N, IL)) -> U21#(tt(), IL, M, N)) } STATUS: arrows: 0.894423 SCCS (10): Scc: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# zeros() -> active# zeros(), mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# length X -> mark# X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# zeros() -> mark# cons(0(), zeros()), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} Scc: { take#(X1, mark X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2), take#(active X1, X2) -> take#(X1, X2)} Scc: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)} Scc: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)} Scc: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)} Scc: { length# mark X -> length# X, length# active X -> length# X} Scc: { U11#(X1, mark X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2), U11#(active X1, X2) -> U11#(X1, X2)} Scc: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)} Scc: { s# mark X -> s# X, s# active X -> s# X} Scc: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)} SCC (28): Strict: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# zeros() -> active# zeros(), mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> mark# X1, mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# length X -> mark# X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# zeros() -> mark# cons(0(), zeros()), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3, [cons](x0, x1) = x0 + x1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0, [active](x0) = x0, [s](x0) = x0, [length](x0) = x0 + 1, [0] = 0, [zeros] = 0, [tt] = 0, [nil] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N) 0 + 1IL + 1M + 1N >= 0 + 1IL + 1M + 1N active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)) 0 + 1IL + 1M + 1N >= 0 + 1IL + 1M + 1N active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N) 0 + 1IL + 1M + 1N >= 0 + 1IL + 1M + 1N active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N) 0 + 1IL + 1M + 1N >= 0 + 1IL + 1M + 1N active# length cons(N, L) -> mark# U11(tt(), L) 1 + 1L + 1N >= 1 + 1L active# U11(tt(), L) -> mark# U12(tt(), L) 1 + 1L >= 1 + 1L active# U12(tt(), L) -> mark# s length L 1 + 1L >= 1 + 1L active# zeros() -> mark# cons(0(), zeros()) 0 >= 0 mark# take(X1, X2) -> active# take(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# take(X1, X2) -> mark# X2 0 + 1X1 + 1X2 >= 0 + 1X2 mark# take(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 mark# U23(X1, X2, X3, X4) -> mark# X1 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 mark# U21(X1, X2, X3, X4) -> mark# X1 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 mark# U22(X1, X2, X3, X4) -> mark# X1 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 mark# length X -> active# length mark X 1 + 1X >= 1 + 1X mark# length X -> mark# X 1 + 1X >= 0 + 1X mark# s X -> active# s mark X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> active# U11(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark# U11(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U12(X1, X2) -> active# U12(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark# U12(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# zeros() -> active# zeros() 0 >= 0 mark# cons(X1, X2) -> active# cons(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 1 + 1X >= 1 + 1X s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 0 + 1IL + 1M + 1N >= 0 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 0 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 0 + 1IL + 1M + 1N >= 0 + 1IL + 1M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 0 + 1IL + 1M + 1N >= 0 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 0 + 1IL + 1M + 1N >= 0 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 0 active length cons(N, L) -> mark U11(tt(), L) 1 + 1L + 1N >= 1 + 1L active U11(tt(), L) -> mark U12(tt(), L) 1 + 1L >= 1 + 1L active U12(tt(), L) -> mark s length L 1 + 1L >= 1 + 1L active zeros() -> mark cons(0(), zeros()) 0 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark nil() -> active nil() 0 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 1X1 + 1X2 + 1X3 + 1X4 >= 0 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 1 + 1X >= 1 + 1X mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark tt() -> active tt() 0 >= 0 mark U12(X1, X2) -> active U12(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark zeros() -> active zeros() 0 >= 0 mark 0() -> active 0() 0 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 SCCS (1): Scc: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# zeros() -> active# zeros(), mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# zeros() -> mark# cons(0(), zeros()), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} SCC (25): Strict: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# zeros() -> active# zeros(), mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# zeros() -> mark# cons(0(), zeros()), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1, [U21](x0, x1, x2, x3) = x0 + x1 + x2, [U23](x0, x1, x2, x3) = x0 + x1, [cons](x0, x1) = x0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = x0 + x1, [mark](x0) = x0, [active](x0) = x0, [s](x0) = x0, [length](x0) = 0, [0] = 0, [zeros] = 1, [tt] = 0, [nil] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N) 0 + 0IL + 1M + 1N >= 0 + 0IL + 1M + 1N active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)) 0 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 1N active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N) 0 + 0IL + 1M + 1N >= 0 + 0IL + 0M + 1N active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N) 0 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 1N active# length cons(N, L) -> mark# U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active# U11(tt(), L) -> mark# U12(tt(), L) 0 + 0L >= 0 + 0L active# U12(tt(), L) -> mark# s length L 0 + 0L >= 0 + 0L active# zeros() -> mark# cons(0(), zeros()) 1 >= 0 mark# take(X1, X2) -> active# take(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# take(X1, X2) -> mark# X2 0 + 1X1 + 1X2 >= 0 + 1X2 mark# take(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 mark# U23(X1, X2, X3, X4) -> mark# X1 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 mark# U21(X1, X2, X3, X4) -> mark# X1 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 mark# U22(X1, X2, X3, X4) -> mark# X1 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 mark# length X -> active# length mark X 0 + 0X >= 0 + 0X mark# s X -> active# s mark X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> active# U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# zeros() -> active# zeros() 1 >= 1 mark# cons(X1, X2) -> active# cons(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# cons(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 0 + 0IL + 1M + 1N >= 0 + 0IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 0 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 0 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 0 + 0IL + 1M + 1N >= 0 + 0IL + 0M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 0 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 1N active length nil() -> mark 0() 0 >= 0 active length cons(N, L) -> mark U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 0 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 0 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark nil() -> active nil() 0 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 mark length X -> active length mark X 0 + 0X >= 0 + 0X mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 0 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark zeros() -> active zeros() 1 >= 1 mark 0() -> active 0() 0 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 SCCS (1): Scc: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} SCC (23): Strict: { mark# cons(X1, X2) -> mark# X1, mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1, [U21](x0, x1, x2, x3) = x0 + x1 + x2, [U23](x0, x1, x2, x3) = x0 + x1, [cons](x0, x1) = x0 + 1, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = x0 + x1, [mark](x0) = x0, [active](x0) = x0, [s](x0) = x0, [length](x0) = 0, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N) 1 + 0IL + 1M + 1N >= 1 + 0IL + 1M + 1N active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)) 1 + 0IL + 0M + 1N >= 1 + 0IL + 0M + 1N active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N) 1 + 0IL + 1M + 1N >= 1 + 0IL + 0M + 1N active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N) 1 + 0IL + 0M + 1N >= 1 + 0IL + 0M + 1N active# length cons(N, L) -> mark# U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active# U11(tt(), L) -> mark# U12(tt(), L) 0 + 0L >= 0 + 0L active# U12(tt(), L) -> mark# s length L 0 + 0L >= 0 + 0L mark# take(X1, X2) -> active# take(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# take(X1, X2) -> mark# X2 0 + 1X1 + 1X2 >= 0 + 1X2 mark# take(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 mark# U23(X1, X2, X3, X4) -> mark# X1 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 mark# U21(X1, X2, X3, X4) -> mark# X1 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 mark# U22(X1, X2, X3, X4) -> mark# X1 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 mark# length X -> active# length mark X 0 + 0X >= 0 + 0X mark# s X -> active# s mark X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> active# U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# cons(X1, X2) -> active# cons(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark# cons(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 0 + 1X1 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 1M + 1N >= 1 + 0IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 0 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 1N >= 1 + 0IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 1M + 1N >= 1 + 0IL + 0M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 1N >= 1 + 0IL + 0M + 1N active length nil() -> mark 0() 0 >= 0 active length cons(N, L) -> mark U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 0 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 0 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 1 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark nil() -> active nil() 0 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 1X3 + 1X4 >= 0 + 1X1 + 0X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 1X4 >= 0 + 1X1 + 0X2 + 0X3 + 1X4 mark length X -> active length mark X 0 + 0X >= 0 + 0X mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark tt() -> active tt() 1 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark zeros() -> active zeros() 1 >= 1 mark 0() -> active 0() 0 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 SCCS (1): Scc: { mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} SCC (22): Strict: { mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> mark# X1, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> mark# X1, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> mark# X1, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + 1, [U23](x0, x1, x2, x3) = x0 + 1, [cons](x0, x1) = 1, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = x0 + x1, [mark](x0) = x0, [active](x0) = x0, [s](x0) = x0, [length](x0) = 0, [0] = 0, [zeros] = 1, [tt] = 0, [nil] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N) 1 + 0IL + 1M + 0N >= 1 + 0IL + 1M + 0N active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N) 1 + 0IL + 1M + 0N >= 1 + 0IL + 0M + 0N active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# length cons(N, L) -> mark# U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active# U11(tt(), L) -> mark# U12(tt(), L) 0 + 0L >= 0 + 0L active# U12(tt(), L) -> mark# s length L 0 + 0L >= 0 + 0L mark# take(X1, X2) -> active# take(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# take(X1, X2) -> mark# X2 0 + 1X1 + 1X2 >= 0 + 1X2 mark# take(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 mark# U23(X1, X2, X3, X4) -> mark# X1 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 1 + 1X1 + 0X2 + 1X3 + 0X4 mark# U21(X1, X2, X3, X4) -> mark# X1 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 0 + 1X1 mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 mark# U22(X1, X2, X3, X4) -> mark# X1 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 mark# length X -> active# length mark X 0 + 0X >= 0 + 0X mark# s X -> active# s mark X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> active# U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# cons(X1, X2) -> active# cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 1 + 1X1 + 0X2 + 1X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 1 + 1X1 + 0X2 + 1X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 1 + 1X1 + 0X2 + 1X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 1 + 1X1 + 0X2 + 1X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 1 + 1X1 + 0X2 + 1X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 1 + 1X1 + 0X2 + 1X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 1 + 1X1 + 0X2 + 1X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 1 + 1X1 + 0X2 + 1X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 1M + 0N >= 1 + 0IL + 1M + 0N active take(0(), IL) -> mark nil() 0 + 1IL >= 0 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 1M + 0N >= 1 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active length nil() -> mark 0() 0 >= 0 active length cons(N, L) -> mark U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 0 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 0 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 1 cons(active X1, X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark nil() -> active nil() 0 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 0X4 >= 1 + 1X1 + 0X2 + 1X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 0 + 0X mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 0 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark zeros() -> active zeros() 1 >= 1 mark 0() -> active 0() 0 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} SCC (19): Strict: { mark# cons(X1, X2) -> active# cons(mark X1, X2), mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 1, [U21](x0, x1, x2, x3) = 1, [U23](x0, x1, x2, x3) = 1, [cons](x0, x1) = 0, [U12](x0, x1) = 1, [U11](x0, x1) = 1, [take](x0, x1) = 1, [mark](x0) = 0, [active](x0) = 0, [s](x0) = 0, [length](x0) = 1, [0] = 0, [zeros] = 0, [tt] = 0, [nil] = 0, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# length cons(N, L) -> mark# U11(tt(), L) 1 + 0L + 0N >= 1 + 0L active# U11(tt(), L) -> mark# U12(tt(), L) 1 + 0L >= 1 + 0L active# U12(tt(), L) -> mark# s length L 1 + 0L >= 1 + 0L mark# take(X1, X2) -> active# take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# take(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# take(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark# length X -> active# length mark X 1 + 0X >= 1 + 0X mark# s X -> active# s mark X 1 + 0X >= 0 + 0X mark# s X -> mark# X 1 + 0X >= 1 + 0X mark# U11(X1, X2) -> active# U11(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U12(X1, X2) -> active# U12(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# cons(X1, X2) -> active# cons(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 1 + 0X >= 1 + 0X length mark X -> length X 1 + 0X >= 1 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 0 + 0IL >= 0 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 0 >= 0 active length cons(N, L) -> mark U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 0 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 0 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 0 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 0 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 0 + 0X mark s X -> active s mark X 0 + 0X >= 0 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 0 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 0 mark 0() -> active 0() 0 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} SCC (17): Strict: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), mark# take(X1, X2) -> mark# X1, mark# take(X1, X2) -> mark# X2, mark# take(X1, X2) -> active# take(mark X1, mark X2), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = x0 + x1 + 1, [mark](x0) = x0, [active](x0) = x0, [s](x0) = x0, [length](x0) = 0, [0] = 0, [zeros] = 0, [tt] = 1, [nil] = 0, [mark#](x0) = x0, [active#](x0) = 0 Strict: active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active# length cons(N, L) -> mark# U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active# U11(tt(), L) -> mark# U12(tt(), L) 0 + 0L >= 0 + 0L active# U12(tt(), L) -> mark# s length L 0 + 0L >= 0 + 0L mark# take(X1, X2) -> active# take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 0 + 0X1 + 0X2 mark# take(X1, X2) -> mark# X2 1 + 1X1 + 1X2 >= 0 + 1X2 mark# take(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark# length X -> active# length mark X 0 + 0X >= 0 + 0X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> active# U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 1M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 1IL >= 0 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 0 >= 0 active length cons(N, L) -> mark U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 0 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 0 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 0 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 0 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 0 + 0X mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark tt() -> active tt() 1 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 0 mark 0() -> active 0() 0 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} SCC (14): Strict: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + 1, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = x0 + 1, [cons](x0, x1) = 0, [U12](x0, x1) = x0 + 1, [U11](x0, x1) = x0 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [s](x0) = x0, [length](x0) = 1, [0] = 1, [zeros] = 1, [tt] = 0, [nil] = 0, [mark#](x0) = x0, [active#](x0) = 1 Strict: active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# U23(tt(), IL, M, N) -> mark# cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# length cons(N, L) -> mark# U11(tt(), L) 1 + 0L + 0N >= 1 + 0L active# U11(tt(), L) -> mark# U12(tt(), L) 1 + 0L >= 1 + 0L active# U12(tt(), L) -> mark# s length L 1 + 0L >= 1 + 0L mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark# length X -> active# length mark X 1 + 0X >= 1 + 0X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> active# U11(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U12(X1, X2) -> active# U12(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 0X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 length active X -> length X 1 + 0X >= 1 + 0X length mark X -> length X 1 + 0X >= 1 + 0X s active X -> s X 1 + 1X >= 0 + 1X s mark X -> s X 1 + 1X >= 0 + 1X U11(active X1, X2) -> U11(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 1M + 0N >= 2 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 2 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 0N >= 2 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 0IL + 0M + 0N >= 2 + 0IL + 0M + 0N active length nil() -> mark 0() 2 >= 2 active length cons(N, L) -> mark U11(tt(), L) 2 + 0L + 0N >= 2 + 0L active U11(tt(), L) -> mark U12(tt(), L) 2 + 0L >= 2 + 0L active U12(tt(), L) -> mark s length L 2 + 0L >= 2 + 0L active zeros() -> mark cons(0(), zeros()) 2 >= 1 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 1 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 3 + 1X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 3 + 1X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 3 + 1X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 2 + 0X >= 2 + 0X mark s X -> active s mark X 1 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 0X2 >= 3 + 1X1 + 0X2 mark tt() -> active tt() 1 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 0X2 >= 3 + 1X1 + 0X2 mark zeros() -> active zeros() 2 >= 2 mark 0() -> active 0() 2 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} SCC (13): Strict: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N), active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 1, [U21](x0, x1, x2, x3) = 1, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = x0 + 1, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = x0 + 1, [mark](x0) = x0, [active](x0) = x0, [s](x0) = x0, [length](x0) = 0, [0] = 0, [zeros] = 1, [tt] = 0, [nil] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# take(s M, cons(N, IL)) -> mark# U21(tt(), IL, M, N) 2 + 1IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# U22(tt(), IL, M, N) -> mark# U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active# length cons(N, L) -> mark# U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active# U11(tt(), L) -> mark# U12(tt(), L) 0 + 0L >= 0 + 0L active# U12(tt(), L) -> mark# s length L 0 + 0L >= 0 + 0L mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark# length X -> active# length mark X 0 + 0X >= 0 + 0X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> active# U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 0M + 0N >= 1 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 1IL >= 0 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 0 + 0IL + 0M + 0N >= 2 + 1IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 0 >= 0 active length cons(N, L) -> mark U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 0 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 0 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 2 cons(active X1, X2) -> cons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 mark nil() -> active nil() 0 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 0 + 0X mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 0 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark zeros() -> active zeros() 1 >= 1 mark 0() -> active 0() 0 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 SCCS (1): Scc: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)} SCC (11): Strict: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4), mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 1, [U23](x0, x1, x2, x3) = 1, [cons](x0, x1) = x0 + x1, [U12](x0, x1) = 1, [U11](x0, x1) = 1, [take](x0, x1) = 0, [mark](x0) = 0, [active](x0) = 0, [s](x0) = 0, [length](x0) = 1, [0] = 1, [zeros] = 1, [tt] = 0, [nil] = 0, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# length cons(N, L) -> mark# U11(tt(), L) 1 + 0L + 0N >= 1 + 0L active# U11(tt(), L) -> mark# U12(tt(), L) 1 + 0L >= 1 + 0L active# U12(tt(), L) -> mark# s length L 1 + 0L >= 1 + 0L mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark# U22(X1, X2, X3, X4) -> active# U22(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark# length X -> active# length mark X 1 + 0X >= 1 + 0X mark# s X -> mark# X 1 + 0X >= 1 + 0X mark# U11(X1, X2) -> active# U11(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U12(X1, X2) -> active# U12(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 1 + 0X >= 1 + 0X length mark X -> length X 1 + 0X >= 1 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 0 + 0IL >= 0 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 0 >= 0 active length cons(N, L) -> mark U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 0 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 0 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 0 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 1X2 >= 0 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 1X2 >= 0 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 1X2 mark nil() -> active nil() 0 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 0 + 0X mark s X -> active s mark X 0 + 0X >= 0 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 0 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 0 mark 0() -> active 0() 0 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)} SCC (10): Strict: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L), active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 1, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = x0, [cons](x0, x1) = 1, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = x0 + 1, [mark](x0) = x0, [active](x0) = x0, [s](x0) = x0, [length](x0) = 0, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# U21(tt(), IL, M, N) -> mark# U22(tt(), IL, M, N) 2 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active# length cons(N, L) -> mark# U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active# U11(tt(), L) -> mark# U12(tt(), L) 0 + 0L >= 0 + 0L active# U12(tt(), L) -> mark# s length L 0 + 0L >= 0 + 0L mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 mark# length X -> active# length mark X 0 + 0X >= 0 + 0X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> active# U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 0IL + 0M + 0N >= 2 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 1IL >= 0 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 0N active length nil() -> mark 0() 0 >= 0 active length cons(N, L) -> mark U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 0 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 0 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 1 cons(active X1, X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark nil() -> active nil() 0 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 0 + 0X mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark tt() -> active tt() 1 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark zeros() -> active zeros() 1 >= 1 mark 0() -> active 0() 0 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L)} SCC (9): Strict: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4), mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + 1, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = x0 + 1, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 1, [mark](x0) = x0 + 1, [active](x0) = x0 + 1, [s](x0) = x0, [length](x0) = 0, [0] = 1, [zeros] = 1, [tt] = 0, [nil] = 1, [mark#](x0) = x0, [active#](x0) = 0 Strict: active# length cons(N, L) -> mark# U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active# U11(tt(), L) -> mark# U12(tt(), L) 0 + 0L >= 0 + 0L active# U12(tt(), L) -> mark# s length L 0 + 0L >= 0 + 0L mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark# U21(X1, X2, X3, X4) -> active# U21(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark# length X -> active# length mark X 0 + 0X >= 0 + 0X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2) -> active# U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 1X3 + 1X4 >= 1 + 1X1 + 0X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 1X3 + 1X4 >= 1 + 1X1 + 0X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 1X4 >= 1 + 1X1 + 0X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 1X3 + 1X4 >= 1 + 1X1 + 0X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 1X3 + 1X4 >= 1 + 1X1 + 0X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 1X3 + 1X4 >= 1 + 1X1 + 0X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 1X3 + 1X4 >= 1 + 1X1 + 0X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 0X2 + 1X3 + 1X4 >= 1 + 1X1 + 0X2 + 1X3 + 1X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 1 + 1X >= 0 + 1X s mark X -> s X 1 + 1X >= 0 + 1X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 0IL + 0M + 0N >= 2 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 2 + 0IL >= 2 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 2 + 0IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 0N >= 2 + 0IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 0IL + 1M + 1N >= 1 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 2 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 1 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 1 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 1 + 0L active zeros() -> mark cons(0(), zeros()) 2 >= 3 cons(active X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark nil() -> active nil() 2 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 2 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 0X2 + 0X3 + 0X4 >= 3 + 1X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 0X2 + 1X3 + 1X4 >= 3 + 1X1 + 0X2 + 1X3 + 1X4 mark length X -> active length mark X 1 + 0X >= 1 + 0X mark s X -> active s mark X 1 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 1 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 2 >= 2 mark 0() -> active 0() 2 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 0X2 >= 3 + 1X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L)} SCC (8): Strict: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4), active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 1, [U11](x0, x1) = 1, [take](x0, x1) = 0, [mark](x0) = 0, [active](x0) = 0, [s](x0) = 0, [length](x0) = 1, [0] = 0, [zeros] = 0, [tt] = 0, [nil] = 0, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# length cons(N, L) -> mark# U11(tt(), L) 1 + 0L + 0N >= 1 + 0L active# U11(tt(), L) -> mark# U12(tt(), L) 1 + 0L >= 1 + 0L active# U12(tt(), L) -> mark# s length L 1 + 0L >= 1 + 0L mark# U23(X1, X2, X3, X4) -> active# U23(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark# length X -> active# length mark X 1 + 0X >= 1 + 0X mark# s X -> mark# X 1 + 0X >= 1 + 0X mark# U11(X1, X2) -> active# U11(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U12(X1, X2) -> active# U12(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 1 + 0X >= 1 + 0X length mark X -> length X 1 + 0X >= 1 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 0 + 0IL >= 0 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 0 >= 0 active length cons(N, L) -> mark U11(tt(), L) 0 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 0 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 0 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 0 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 0 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 0 + 0X mark s X -> active s mark X 0 + 0X >= 0 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 0 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 0 mark 0() -> active 0() 0 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L)} SCC (7): Strict: { mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# U11(X1, X2) -> active# U11(mark X1, X2), mark# s X -> mark# X, mark# length X -> active# length mark X, active# U12(tt(), L) -> mark# s length L, active# U11(tt(), L) -> mark# U12(tt(), L), active# length cons(N, L) -> mark# U11(tt(), L)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} Fail SCC (4): Strict: { take#(X1, mark X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2), take#(active X1, X2) -> take#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [take#](x0, x1) = x0 Strict: take#(active X1, X2) -> take#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 take#(mark X1, X2) -> take#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 take#(X1, active X2) -> take#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 take#(X1, mark X2) -> take#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { take#(X1, mark X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2)} SCC (3): Strict: { take#(X1, mark X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2), take#(mark X1, X2) -> take#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [take#](x0, x1) = x0 Strict: take#(mark X1, X2) -> take#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 take#(X1, active X2) -> take#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 take#(X1, mark X2) -> take#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 2 + 1IL + 1M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { take#(X1, mark X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2)} SCC (2): Strict: { take#(X1, mark X2) -> take#(X1, X2), take#(X1, active X2) -> take#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [take#](x0, x1) = x0 Strict: take#(X1, active X2) -> take#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 take#(X1, mark X2) -> take#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 1N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 2 + 0X1 + 0X2 + 0X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {take#(X1, mark X2) -> take#(X1, X2)} SCC (1): Strict: {take#(X1, mark X2) -> take#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + 1, [take](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [take#](x0, x1) = x0 Strict: take#(X1, mark X2) -> take#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 0M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 1 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 3 + 1IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 0L active U11(tt(), L) -> mark U12(tt(), L) 2 + 0L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (8): Strict: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U23#](x0, x1, x2, x3) = x0 Strict: U23#(active X1, X2, X3, X4) -> U23#(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)} SCC (7): Strict: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U23#](x0, x1, x2, x3) = x0 Strict: U23#(mark X1, X2, X3, X4) -> U23#(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 2 + 0IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 2 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4)} SCC (6): Strict: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U23#](x0, x1, x2, x3) = x0 Strict: U23#(X1, active X2, X3, X4) -> U23#(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)} SCC (5): Strict: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U23#](x0, x1, x2, x3) = x0 Strict: U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U23#(X1, X2, active X3, X4) -> U23#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)} SCC (4): Strict: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4), U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U23#](x0, x1, x2, x3) = x0 Strict: U23#(X1, mark X2, X3, X4) -> U23#(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 2 + 1IL + 1M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4)} SCC (3): Strict: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U23#](x0, x1, x2, x3) = x0 Strict: U23#(X1, X2, mark X3, X4) -> U23#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 2 + 1IL + 1M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4)} SCC (2): Strict: { U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4), U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U23#](x0, x1, x2, x3) = x0 Strict: U23#(X1, X2, X3, active X4) -> U23#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 1N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 2 + 0X1 + 0X2 + 0X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4)} SCC (1): Strict: {U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + 1, [take](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U23#](x0, x1, x2, x3) = x0 Strict: U23#(X1, X2, X3, mark X4) -> U23#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 0M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 1 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 3 + 1IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 0L active U11(tt(), L) -> mark U12(tt(), L) 2 + 0L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (8): Strict: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U21#](x0, x1, x2, x3) = x0 Strict: U21#(active X1, X2, X3, X4) -> U21#(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)} SCC (7): Strict: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U21#](x0, x1, x2, x3) = x0 Strict: U21#(mark X1, X2, X3, X4) -> U21#(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 2 + 0IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 2 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4)} SCC (6): Strict: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U21#](x0, x1, x2, x3) = x0 Strict: U21#(X1, active X2, X3, X4) -> U21#(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)} SCC (5): Strict: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U21#](x0, x1, x2, x3) = x0 Strict: U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U21#(X1, X2, active X3, X4) -> U21#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)} SCC (4): Strict: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4), U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U21#](x0, x1, x2, x3) = x0 Strict: U21#(X1, mark X2, X3, X4) -> U21#(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 2 + 1IL + 1M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4)} SCC (3): Strict: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U21#](x0, x1, x2, x3) = x0 Strict: U21#(X1, X2, mark X3, X4) -> U21#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 2 + 1IL + 1M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4)} SCC (2): Strict: { U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4), U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U21#](x0, x1, x2, x3) = x0 Strict: U21#(X1, X2, X3, active X4) -> U21#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 1N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 2 + 0X1 + 0X2 + 0X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4)} SCC (1): Strict: {U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + 1, [take](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U21#](x0, x1, x2, x3) = x0 Strict: U21#(X1, X2, X3, mark X4) -> U21#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 0M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 1 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 3 + 1IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 0L active U11(tt(), L) -> mark U12(tt(), L) 2 + 0L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (8): Strict: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U22#](x0, x1, x2, x3) = x0 Strict: U22#(active X1, X2, X3, X4) -> U22#(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)} SCC (7): Strict: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = 0, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U22#](x0, x1, x2, x3) = x0 Strict: U22#(mark X1, X2, X3, X4) -> U22#(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 1X1 + 0X2 + 0X3 + 0X4 >= 0 + 1X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 0 + 0IL + 0M + 0N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 2 + 0IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 2 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 1 + 1X1 + 0X2 + 0X3 + 0X4 >= 1 + 1X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4)} SCC (6): Strict: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U22#](x0, x1, x2, x3) = x0 Strict: U22#(X1, active X2, X3, X4) -> U22#(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)} SCC (5): Strict: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U22#](x0, x1, x2, x3) = x0 Strict: U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U22#(X1, X2, active X3, X4) -> U22#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)} SCC (4): Strict: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4), U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U22#](x0, x1, x2, x3) = x0 Strict: U22#(X1, mark X2, X3, X4) -> U22#(X1, X2, X3, X4) 1 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 1X2 + 0X3 + 0X4 >= 0 + 0X1 + 1X2 + 0X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 2 + 1IL + 1M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4)} SCC (3): Strict: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U22#](x0, x1, x2, x3) = x0 Strict: U22#(X1, X2, mark X3, X4) -> U22#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 1X3 + 0X4 >= 0 + 0X1 + 0X2 + 1X3 + 0X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 2 + 1IL + 1M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4)} SCC (2): Strict: { U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4), U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U22#](x0, x1, x2, x3) = x0 Strict: U22#(X1, X2, X3, active X4) -> U22#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 1N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 2 + 0X1 + 0X2 + 0X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4)} SCC (1): Strict: {U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + 1, [take](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U22#](x0, x1, x2, x3) = x0 Strict: U22#(X1, X2, X3, mark X4) -> U22#(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 0 + 0X1 + 0X2 + 0X3 + 1X4 Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 0M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 1 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 3 + 1IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 0L active U11(tt(), L) -> mark U12(tt(), L) 2 + 0L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (2): Strict: { length# mark X -> length# X, length# active X -> length# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [length#](x0) = x0 Strict: length# active X -> length# X 1 + 1X >= 0 + 1X length# mark X -> length# X 0 + 1X >= 0 + 1X Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 1N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 2 + 0X1 + 0X2 + 0X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {length# mark X -> length# X} SCC (1): Strict: {length# mark X -> length# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + 1, [take](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [length#](x0) = x0 Strict: length# mark X -> length# X 1 + 1X >= 0 + 1X Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 0M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 1 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 3 + 1IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 0L active U11(tt(), L) -> mark U12(tt(), L) 2 + 0L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (4): Strict: { U11#(X1, mark X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2), U11#(active X1, X2) -> U11#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U11#](x0, x1) = x0 Strict: U11#(active X1, X2) -> U11#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U11#(mark X1, X2) -> U11#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U11#(X1, active X2) -> U11#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U11#(X1, mark X2) -> U11#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U11#(X1, mark X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2)} SCC (3): Strict: { U11#(X1, mark X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2), U11#(mark X1, X2) -> U11#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U11#](x0, x1) = x0 Strict: U11#(mark X1, X2) -> U11#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U11#(X1, active X2) -> U11#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U11#(X1, mark X2) -> U11#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 2 + 1IL + 1M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U11#(X1, mark X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2)} SCC (2): Strict: { U11#(X1, mark X2) -> U11#(X1, X2), U11#(X1, active X2) -> U11#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U11#](x0, x1) = x0 Strict: U11#(X1, active X2) -> U11#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U11#(X1, mark X2) -> U11#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 1N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 2 + 0X1 + 0X2 + 0X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U11#(X1, mark X2) -> U11#(X1, X2)} SCC (1): Strict: {U11#(X1, mark X2) -> U11#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + 1, [take](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U11#](x0, x1) = x0 Strict: U11#(X1, mark X2) -> U11#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 0M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 1 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 3 + 1IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 0L active U11(tt(), L) -> mark U12(tt(), L) 2 + 0L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (4): Strict: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U12#](x0, x1) = x0 Strict: U12#(active X1, X2) -> U12#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12#(mark X1, X2) -> U12#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12#(X1, active X2) -> U12#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12#(X1, mark X2) -> U12#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)} SCC (3): Strict: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U12#](x0, x1) = x0 Strict: U12#(mark X1, X2) -> U12#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12#(X1, active X2) -> U12#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12#(X1, mark X2) -> U12#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 2 + 1IL + 1M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)} SCC (2): Strict: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [U12#](x0, x1) = x0 Strict: U12#(X1, active X2) -> U12#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U12#(X1, mark X2) -> U12#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 1N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 2 + 0X1 + 0X2 + 0X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U12#(X1, mark X2) -> U12#(X1, X2)} SCC (1): Strict: {U12#(X1, mark X2) -> U12#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + 1, [take](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [U12#](x0, x1) = x0 Strict: U12#(X1, mark X2) -> U12#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 0M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 1 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 3 + 1IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 0L active U11(tt(), L) -> mark U12(tt(), L) 2 + 0L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (2): Strict: { s# mark X -> s# X, s# active X -> s# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [s#](x0) = x0 Strict: s# active X -> s# X 1 + 1X >= 0 + 1X s# mark X -> s# X 0 + 1X >= 0 + 1X Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 1N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 2 + 0X1 + 0X2 + 0X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {s# mark X -> s# X} SCC (1): Strict: {s# mark X -> s# X} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + 1, [take](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [s#](x0) = x0 Strict: s# mark X -> s# X 1 + 1X >= 0 + 1X Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 0M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 1 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 3 + 1IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 0L active U11(tt(), L) -> mark U12(tt(), L) 2 + 0L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (4): Strict: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2), cons#(active X1, X2) -> cons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = 0, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [cons#](x0, x1) = x0 Strict: cons#(active X1, X2) -> cons#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(mark X1, X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, active X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, mark X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)} SCC (3): Strict: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2), cons#(mark X1, X2) -> cons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [cons#](x0, x1) = x0 Strict: cons#(mark X1, X2) -> cons#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, active X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 cons#(X1, mark X2) -> cons#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, active X2) -> take(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 1 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U11(X1, mark X2) -> U11(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 0 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 2 + 1IL + 1M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 1L active U11(tt(), L) -> mark U12(tt(), L) 2 + 1L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)} SCC (2): Strict: { cons#(X1, mark X2) -> cons#(X1, X2), cons#(X1, active X2) -> cons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = 0, [U21](x0, x1, x2, x3) = x0 + 1, [U23](x0, x1, x2, x3) = 0, [cons](x0, x1) = 0, [U12](x0, x1) = 0, [U11](x0, x1) = 0, [take](x0, x1) = 0, [mark](x0) = x0, [active](x0) = x0 + 1, [s](x0) = 0, [length](x0) = 0, [0] = 1, [zeros] = 0, [tt] = 0, [nil] = 1, [cons#](x0, x1) = x0 Strict: cons#(X1, active X2) -> cons#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 cons#(X1, mark X2) -> cons#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: take(active X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(mark X1, X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, active X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 take(X1, mark X2) -> take(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 2 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 1 + 0X1 + 0X2 + 0X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 0 + 0X1 + 0X2 + 0X3 + 0X4 length active X -> length X 0 + 0X >= 0 + 0X length mark X -> length X 0 + 0X >= 0 + 0X s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U11(active X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 1 + 0IL + 0M + 1N active take(0(), IL) -> mark nil() 1 + 0IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 0IL + 0M + 1N >= 0 + 0IL + 0M + 0N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 1 + 0IL + 0M + 0N >= 0 + 0IL + 0M + 0N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 1 + 0L + 0N >= 0 + 0L active U11(tt(), L) -> mark U12(tt(), L) 1 + 0L >= 0 + 0L active U12(tt(), L) -> mark s length L 1 + 0L >= 0 + 0L active zeros() -> mark cons(0(), zeros()) 1 >= 0 cons(active X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(mark X1, X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, active X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 cons(X1, mark X2) -> cons(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark nil() -> active nil() 1 >= 2 mark take(X1, X2) -> active take(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 1 + 0X1 + 0X2 + 0X3 + 1X4 >= 2 + 0X1 + 0X2 + 0X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 0 + 0X1 + 0X2 + 0X3 + 0X4 >= 1 + 0X1 + 0X2 + 0X3 + 0X4 mark length X -> active length mark X 0 + 0X >= 1 + 0X mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U11(X1, X2) -> active U11(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark tt() -> active tt() 0 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark zeros() -> active zeros() 0 >= 1 mark 0() -> active 0() 1 >= 2 mark cons(X1, X2) -> active cons(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {cons#(X1, mark X2) -> cons#(X1, X2)} SCC (1): Strict: {cons#(X1, mark X2) -> cons#(X1, X2)} Weak: { mark cons(X1, X2) -> active cons(mark X1, X2), mark 0() -> active 0(), mark zeros() -> active zeros(), mark U12(X1, X2) -> active U12(mark X1, X2), mark tt() -> active tt(), mark U11(X1, X2) -> active U11(mark X1, X2), mark s X -> active s mark X, mark length X -> active length mark X, mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4), mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4), mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4), mark take(X1, X2) -> active take(mark X1, mark X2), mark nil() -> active nil(), cons(X1, mark X2) -> cons(X1, X2), cons(X1, active X2) -> cons(X1, X2), cons(mark X1, X2) -> cons(X1, X2), cons(active X1, X2) -> cons(X1, X2), active zeros() -> mark cons(0(), zeros()), active U12(tt(), L) -> mark s length L, active U11(tt(), L) -> mark U12(tt(), L), active length cons(N, L) -> mark U11(tt(), L), active length nil() -> mark 0(), active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N), active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N), active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)), active take(0(), IL) -> mark nil(), active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N), U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), U11(X1, mark X2) -> U11(X1, X2), U11(X1, active X2) -> U11(X1, X2), U11(mark X1, X2) -> U11(X1, X2), U11(active X1, X2) -> U11(X1, X2), s mark X -> s X, s active X -> s X, length mark X -> length X, length active X -> length X, U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4), U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4), U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4), U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4), U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4), U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4), U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4), U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4), U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4), U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4), U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4), U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4), U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4), U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4), U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4), U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4), U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4), U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4), U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4), U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4), U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4), U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4), take(X1, mark X2) -> take(X1, X2), take(X1, active X2) -> take(X1, X2), take(mark X1, X2) -> take(X1, X2), take(active X1, X2) -> take(X1, X2)} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U22](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U21](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [U23](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [cons](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + 1, [take](x0, x1) = x0 + 1, [mark](x0) = x0 + 1, [active](x0) = x0, [s](x0) = x0 + 1, [length](x0) = x0 + 1, [0] = 0, [zeros] = 1, [tt] = 1, [nil] = 0, [cons#](x0, x1) = x0 Strict: cons#(X1, mark X2) -> cons#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: take(active X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(mark X1, X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, active X2) -> take(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 take(X1, mark X2) -> take(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U23(active X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(mark X1, X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, active X2, X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, mark X2, X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, active X3, X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, mark X3, X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, active X4) -> U23(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U23(X1, X2, X3, mark X4) -> U23(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(active X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(mark X1, X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, active X2, X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, mark X2, X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, active X3, X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, mark X3, X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, active X4) -> U21(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U21(X1, X2, X3, mark X4) -> U21(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(active X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(mark X1, X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, active X2, X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, mark X2, X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, active X3, X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, mark X3, X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, active X4) -> U22(X1, X2, X3, X4) 1 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 U22(X1, X2, X3, mark X4) -> U22(X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 1 + 1X1 + 1X2 + 1X3 + 1X4 length active X -> length X 1 + 1X >= 1 + 1X length mark X -> length X 2 + 1X >= 1 + 1X s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U11(active X1, X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(mark X1, X2) -> U11(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, active X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U11(X1, mark X2) -> U11(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 active take(s M, cons(N, IL)) -> mark U21(tt(), IL, M, N) 2 + 1IL + 0M + 1N >= 3 + 1IL + 1M + 1N active take(0(), IL) -> mark nil() 1 + 1IL >= 1 active U23(tt(), IL, M, N) -> mark cons(N, take(M, IL)) 2 + 1IL + 1M + 1N >= 3 + 1IL + 0M + 1N active U21(tt(), IL, M, N) -> mark U22(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active U22(tt(), IL, M, N) -> mark U23(tt(), IL, M, N) 2 + 1IL + 1M + 1N >= 3 + 1IL + 1M + 1N active length nil() -> mark 0() 1 >= 1 active length cons(N, L) -> mark U11(tt(), L) 2 + 1L + 1N >= 3 + 0L active U11(tt(), L) -> mark U12(tt(), L) 2 + 0L >= 3 + 1L active U12(tt(), L) -> mark s length L 2 + 1L >= 3 + 1L active zeros() -> mark cons(0(), zeros()) 1 >= 3 cons(active X1, X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(mark X1, X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, active X2) -> cons(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 cons(X1, mark X2) -> cons(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark nil() -> active nil() 1 >= 0 mark take(X1, X2) -> active take(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark U23(X1, X2, X3, X4) -> active U23(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U21(X1, X2, X3, X4) -> active U21(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark U22(X1, X2, X3, X4) -> active U22(mark X1, X2, X3, X4) 2 + 1X1 + 1X2 + 1X3 + 1X4 >= 2 + 1X1 + 1X2 + 1X3 + 1X4 mark length X -> active length mark X 2 + 1X >= 2 + 1X mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U11(X1, X2) -> active U11(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark tt() -> active tt() 2 >= 1 mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark zeros() -> active zeros() 2 >= 1 mark 0() -> active 0() 1 >= 0 mark cons(X1, X2) -> active cons(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed