MAYBE TRS: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} DP: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2)), mark#(tt()) -> active#(tt()), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(0()) -> active#(0()), 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#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(cons(X1, X2)) -> cons#(mark(X1), X2), mark#(nil()) -> active#(nil()), 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#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake1(X)) -> uTake1#(mark(X)), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4), mark#(uLength(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L)), active#(isNatList(cons(N, L))) -> isNatList#(L), active#(isNatList(cons(N, L))) -> isNat#(N), active#(isNatList(nil())) -> mark#(tt()), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL)), active#(isNatList(take(N, IL))) -> isNatIList#(IL), active#(isNatList(take(N, IL))) -> isNat#(N), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(IL)) -> isNatList#(IL), active#(isNatIList(zeros())) -> mark#(tt()), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL)), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL), active#(isNatIList(cons(N, IL))) -> isNat#(N), active#(isNat(0())) -> mark#(tt()), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(s(N))) -> isNat#(N), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(isNat(length(L))) -> isNatList#(L), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L)), active#(length(cons(N, L))) -> isNatList#(L), active#(length(cons(N, L))) -> isNat#(N), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L), active#(zeros()) -> mark#(cons(0(), zeros())), active#(zeros()) -> cons#(0(), zeros()), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), active#(take(0(), IL)) -> isNatIList#(IL), active#(take(0(), IL)) -> uTake1#(isNatIList(IL)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL))), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL), active#(take(s(M), cons(N, IL))) -> isNat#(N), active#(take(s(M), cons(N, IL))) -> isNat#(M), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL), active#(uTake1(tt())) -> mark#(nil()), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL)), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL), active#(uLength(tt(), L)) -> mark#(s(length(L))), active#(uLength(tt(), L)) -> s#(length(L)), active#(uLength(tt(), L)) -> length#(L), and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2), isNatList#(mark(X)) -> isNatList#(X), isNatList#(active(X)) -> isNatList#(X), isNatIList#(mark(X)) -> isNatIList#(X), isNatIList#(active(X)) -> isNatIList#(X), isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X), s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X), length#(mark(X)) -> length#(X), length#(active(X)) -> length#(X), 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), 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), uTake1#(mark(X)) -> uTake1#(X), uTake1#(active(X)) -> uTake1#(X), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2), uLength#(active(X1), X2) -> uLength#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} EDG: { (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> length#(L)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> s#(length(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uTake1(tt())) -> mark#(nil())) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(0(), IL)) -> uTake1#(isNatIList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> isNat#(N)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(L))) -> isNatList#(L)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(N))) -> isNat#(N)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(0())) -> mark#(tt())) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> isNat#(N)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(IL)) -> isNatList#(IL)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(N, IL))) -> isNat#(N)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(N, IL))) -> isNatIList#(IL)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(nil())) -> mark#(tt())) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> isNat#(N)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> isNatList#(L)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(s(X)) -> s#(mark(X)), s#(active(X)) -> s#(X)) (mark#(s(X)) -> s#(mark(X)), s#(mark(X)) -> s#(X)) (mark#(uTake1(X)) -> uTake1#(mark(X)), uTake1#(active(X)) -> uTake1#(X)) (mark#(uTake1(X)) -> uTake1#(mark(X)), uTake1#(mark(X)) -> uTake1#(X)) (active#(uLength(tt(), L)) -> s#(length(L)), s#(active(X)) -> s#(X)) (active#(uLength(tt(), L)) -> s#(length(L)), s#(mark(X)) -> s#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake1(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(length(X)) -> length#(mark(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(length(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> s#(mark(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X1)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (mark#(and(X1, X2)) -> and#(mark(X1), mark(X2)), and#(active(X1), X2) -> and#(X1, X2)) (mark#(and(X1, X2)) -> and#(mark(X1), mark(X2)), and#(mark(X1), X2) -> and#(X1, X2)) (mark#(and(X1, X2)) -> and#(mark(X1), mark(X2)), and#(X1, active(X2)) -> and#(X1, X2)) (mark#(and(X1, X2)) -> and#(mark(X1), mark(X2)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L)), and#(active(X1), X2) -> and#(X1, X2)) (active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(active(X1), X2) -> and#(X1, X2)) (active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(active(X1), X2) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L), uLength#(active(X1), X2) -> uLength#(X1, X2)) (active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L), uLength#(mark(X1), X2) -> uLength#(X1, X2)) (active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L), uLength#(X1, active(X2)) -> uLength#(X1, X2)) (active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L), uLength#(X1, mark(X2)) -> uLength#(X1, X2)) (active#(isNatIList(IL)) -> isNatList#(IL), isNatList#(active(X)) -> isNatList#(X)) (active#(isNatIList(IL)) -> isNatList#(IL), isNatList#(mark(X)) -> isNatList#(X)) (active#(take(0(), IL)) -> isNatIList#(IL), isNatIList#(active(X)) -> isNatIList#(X)) (active#(take(0(), IL)) -> isNatIList#(IL), isNatIList#(mark(X)) -> isNatIList#(X)) (active#(isNatList(cons(N, L))) -> isNat#(N), isNat#(active(X)) -> isNat#(X)) (active#(isNatList(cons(N, L))) -> isNat#(N), isNat#(mark(X)) -> isNat#(X)) (active#(isNatIList(cons(N, IL))) -> isNat#(N), isNat#(active(X)) -> isNat#(X)) (active#(isNatIList(cons(N, IL))) -> isNat#(N), isNat#(mark(X)) -> isNat#(X)) (active#(length(cons(N, L))) -> isNat#(N), isNat#(active(X)) -> isNat#(X)) (active#(length(cons(N, L))) -> isNat#(N), isNat#(mark(X)) -> isNat#(X)) (active#(isNatList(cons(N, L))) -> isNatList#(L), isNatList#(active(X)) -> isNatList#(X)) (active#(isNatList(cons(N, L))) -> isNatList#(L), isNatList#(mark(X)) -> isNatList#(X)) (active#(length(cons(N, L))) -> isNatList#(L), isNatList#(active(X)) -> isNatList#(X)) (active#(length(cons(N, L))) -> isNatList#(L), isNatList#(mark(X)) -> isNatList#(X)) (active#(uTake2(tt(), M, N, IL)) -> take#(M, IL), take#(active(X1), X2) -> take#(X1, X2)) (active#(uTake2(tt(), M, N, IL)) -> take#(M, IL), take#(mark(X1), X2) -> take#(X1, X2)) (active#(uTake2(tt(), M, N, IL)) -> take#(M, IL), take#(X1, active(X2)) -> take#(X1, X2)) (active#(uTake2(tt(), M, N, IL)) -> take#(M, IL), take#(X1, mark(X2)) -> take#(X1, X2)) (mark#(cons(X1, X2)) -> cons#(mark(X1), X2), cons#(active(X1), X2) -> cons#(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#(X1, active(X2)) -> cons#(X1, X2)) (mark#(cons(X1, X2)) -> cons#(mark(X1), X2), cons#(X1, mark(X2)) -> cons#(X1, X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> uTake1#(mark(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(nil()) -> active#(nil())) (mark#(and(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> length#(mark(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(take(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(take(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (mark#(take(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(take(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> uTake1#(mark(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(take(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> mark#(X)) (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#(nil()) -> active#(nil())) (mark#(take(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (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)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (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#(0()) -> active#(0())) (mark#(take(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(take(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (mark#(take(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(take(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(take(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> mark#(X1)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> uTake1#(mark(X))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> mark#(X)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(nil()) -> active#(nil())) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(length(X)) -> length#(mark(X))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(uLength(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (and#(X1, active(X2)) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)) (and#(X1, active(X2)) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2)) (and#(X1, active(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2)) (and#(X1, active(X2)) -> and#(X1, X2), and#(X1, mark(X2)) -> and#(X1, X2)) (and#(active(X1), X2) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)) (and#(active(X1), X2) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2)) (and#(active(X1), X2) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2)) (and#(active(X1), X2) -> and#(X1, X2), and#(X1, mark(X2)) -> and#(X1, X2)) (cons#(X1, active(X2)) -> cons#(X1, X2), cons#(active(X1), 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#(X1, active(X2)) -> cons#(X1, X2)) (cons#(X1, active(X2)) -> cons#(X1, X2), cons#(X1, mark(X2)) -> cons#(X1, X2)) (cons#(active(X1), X2) -> cons#(X1, X2), cons#(active(X1), 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#(X1, active(X2)) -> cons#(X1, X2)) (cons#(active(X1), X2) -> cons#(X1, X2), cons#(X1, mark(X2)) -> cons#(X1, X2)) (take#(X1, active(X2)) -> take#(X1, X2), take#(active(X1), 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#(X1, active(X2)) -> take#(X1, X2)) (take#(X1, active(X2)) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (take#(active(X1), X2) -> take#(X1, X2), take#(active(X1), 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#(X1, active(X2)) -> take#(X1, X2)) (take#(active(X1), X2) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(active(X1), X2) -> uLength#(X1, X2)) (uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2)) (uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)) (uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(X1, mark(X2)) -> uLength#(X1, X2)) (uLength#(active(X1), X2) -> uLength#(X1, X2), uLength#(active(X1), X2) -> uLength#(X1, X2)) (uLength#(active(X1), X2) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2)) (uLength#(active(X1), X2) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)) (uLength#(active(X1), X2) -> uLength#(X1, X2), uLength#(X1, mark(X2)) -> uLength#(X1, X2)) (active#(isNatIList(zeros())) -> mark#(tt()), mark#(tt()) -> active#(tt())) (active#(uTake1(tt())) -> mark#(nil()), mark#(nil()) -> active#(nil())) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> length#(L)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> s#(length(L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uTake1(tt())) -> mark#(nil())) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(0(), IL)) -> uTake1#(isNatIList(IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> isNat#(N)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(L))) -> isNatList#(L)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(N))) -> isNat#(N)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(0())) -> mark#(tt())) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> isNat#(N)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(IL)) -> isNatList#(IL)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> isNat#(N)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> isNatIList#(IL)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(nil())) -> mark#(tt())) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> isNat#(N)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> isNatList#(L)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> mark#(X)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> length#(mark(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> mark#(X)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> s#(mark(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(zeros()) -> mark#(cons(0(), zeros())), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (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)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(take(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(take(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (mark#(take(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(take(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> uTake1#(mark(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> mark#(X)) (mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> take#(mark(X1), 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)) -> mark#(X2)) (mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(nil()) -> active#(nil())) (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#(cons(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(zeros()) -> active#(zeros())) (mark#(take(X1, X2)) -> mark#(X2), mark#(length(X)) -> length#(mark(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(length(X)) -> mark#(X)) (mark#(take(X1, X2)) -> mark#(X2), mark#(s(X)) -> s#(mark(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(s(X)) -> active#(s(mark(X)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(take(X1, X2)) -> mark#(X2), mark#(0()) -> active#(0())) (mark#(take(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(tt()) -> active#(tt())) (mark#(take(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (mark#(take(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(take(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uLength(tt(), L)) -> length#(L)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uLength(tt(), L)) -> s#(length(L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uTake1(tt())) -> mark#(nil())) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(0(), IL)) -> uTake1#(isNatIList(IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> isNat#(N)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(length(L))) -> isNatList#(L)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(s(N))) -> isNat#(N)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(0())) -> mark#(tt())) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> isNat#(N)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(IL)) -> isNatList#(IL)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(take(N, IL))) -> isNat#(N)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(take(N, IL))) -> isNatIList#(IL)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(nil())) -> mark#(tt())) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(N, L))) -> isNat#(N)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(N, L))) -> isNatList#(L)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake1(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(take(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(take(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> length#(mark(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> s#(mark(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> active#(s(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uTake1(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(take(X1, X2)) -> mark#(X2)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(take(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(length(X)) -> length#(mark(X))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(length(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(s(X)) -> s#(mark(X))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(s(X)) -> active#(s(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(s(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(and(X1, X2)) -> mark#(X2)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(length(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(length(X)) -> mark#(X), mark#(uLength(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (mark#(length(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(length(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(uTake1(X)) -> uTake1#(mark(X))) (mark#(length(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(length(X)) -> mark#(X), mark#(uTake1(X)) -> mark#(X)) (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#(nil()) -> active#(nil())) (mark#(length(X)) -> mark#(X), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(length(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(length(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (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#(0()) -> active#(0())) (mark#(length(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(length(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(length(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(length(X)) -> mark#(X), mark#(tt()) -> active#(tt())) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (isNatList#(mark(X)) -> isNatList#(X), isNatList#(active(X)) -> isNatList#(X)) (isNatList#(mark(X)) -> isNatList#(X), isNatList#(mark(X)) -> isNatList#(X)) (isNatIList#(mark(X)) -> isNatIList#(X), isNatIList#(active(X)) -> isNatIList#(X)) (isNatIList#(mark(X)) -> isNatIList#(X), isNatIList#(mark(X)) -> isNatIList#(X)) (isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X)) (isNat#(mark(X)) -> isNat#(X), isNat#(mark(X)) -> isNat#(X)) (s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X)) (s#(mark(X)) -> s#(X), s#(mark(X)) -> s#(X)) (length#(mark(X)) -> length#(X), length#(active(X)) -> length#(X)) (length#(mark(X)) -> length#(X), length#(mark(X)) -> length#(X)) (uTake1#(mark(X)) -> uTake1#(X), uTake1#(active(X)) -> uTake1#(X)) (uTake1#(mark(X)) -> uTake1#(X), uTake1#(mark(X)) -> uTake1#(X)) (active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL)), cons#(active(X1), X2) -> cons#(X1, X2)) (active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL)), cons#(mark(X1), X2) -> cons#(X1, X2)) (active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL)), cons#(X1, active(X2)) -> cons#(X1, X2)) (active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL)), cons#(X1, mark(X2)) -> cons#(X1, X2)) (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> length#(L)) (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> s#(length(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL)) (mark#(length(X)) -> active#(length(mark(X))), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(uTake1(tt())) -> mark#(nil())) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(0(), IL)) -> uTake1#(isNatIList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(length(X)) -> active#(length(mark(X))), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L)) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> isNat#(N)) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(L))) -> isNatList#(L)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(N))) -> isNat#(N)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(0())) -> mark#(tt())) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> isNat#(N)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(IL)) -> isNatList#(IL)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(N, IL))) -> isNat#(N)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(N, IL))) -> isNatIList#(IL)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(nil())) -> mark#(tt())) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> isNat#(N)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> isNatList#(L)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), T)) -> mark#(T)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uTake1(X)) -> mark#(X)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X2)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(length(X)) -> length#(mark(X))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(length(X)) -> mark#(X)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(s(X)) -> s#(mark(X))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> active#(s(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> s#(mark(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> length#(mark(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake1(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(cons(N, L))) -> isNatList#(L)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(cons(N, L))) -> isNat#(N)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(nil())) -> mark#(tt())) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(take(N, IL))) -> isNatIList#(IL)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(take(N, IL))) -> isNat#(N)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(IL)) -> isNatList#(IL)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(cons(N, IL))) -> isNat#(N)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNat(0())) -> mark#(tt())) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNat(s(N))) -> isNat#(N)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNat(length(L))) -> isNatList#(L)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(length(cons(N, L))) -> isNat#(N)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(0(), IL)) -> uTake1#(isNatIList(IL))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uTake1(tt())) -> mark#(nil())) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uLength(tt(), L)) -> s#(length(L))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uLength(tt(), L)) -> length#(L)) (mark#(s(X)) -> active#(s(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(N, L))) -> isNatList#(L)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(N, L))) -> isNat#(N)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(nil())) -> mark#(tt())) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(N, IL))) -> isNatIList#(IL)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(N, IL))) -> isNat#(N)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(IL)) -> isNatList#(IL)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(N, IL))) -> isNat#(N)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(0())) -> mark#(tt())) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(s(N))) -> isNat#(N)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(length(L))) -> isNatList#(L)) (mark#(s(X)) -> active#(s(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(s(X)) -> active#(s(mark(X))), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(s(X)) -> active#(s(mark(X))), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(s(X)) -> active#(s(mark(X))), active#(length(cons(N, L))) -> isNat#(N)) (mark#(s(X)) -> active#(s(mark(X))), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L)) (mark#(s(X)) -> active#(s(mark(X))), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(s(X)) -> active#(s(mark(X))), active#(take(0(), IL)) -> uTake1#(isNatIList(IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)) (mark#(s(X)) -> active#(s(mark(X))), active#(uTake1(tt())) -> mark#(nil())) (mark#(s(X)) -> active#(s(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL)) (mark#(s(X)) -> active#(s(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(s(X)) -> active#(s(mark(X))), active#(uLength(tt(), L)) -> s#(length(L))) (mark#(s(X)) -> active#(s(mark(X))), active#(uLength(tt(), L)) -> length#(L)) (uTake1#(active(X)) -> uTake1#(X), uTake1#(mark(X)) -> uTake1#(X)) (uTake1#(active(X)) -> uTake1#(X), uTake1#(active(X)) -> uTake1#(X)) (length#(active(X)) -> length#(X), length#(mark(X)) -> length#(X)) (length#(active(X)) -> length#(X), length#(active(X)) -> length#(X)) (s#(active(X)) -> s#(X), s#(mark(X)) -> s#(X)) (s#(active(X)) -> s#(X), s#(active(X)) -> s#(X)) (isNat#(active(X)) -> isNat#(X), isNat#(mark(X)) -> isNat#(X)) (isNat#(active(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X)) (isNatIList#(active(X)) -> isNatIList#(X), isNatIList#(mark(X)) -> isNatIList#(X)) (isNatIList#(active(X)) -> isNatIList#(X), isNatIList#(active(X)) -> isNatIList#(X)) (isNatList#(active(X)) -> isNatList#(X), isNatList#(mark(X)) -> isNatList#(X)) (isNatList#(active(X)) -> isNatList#(X), isNatList#(active(X)) -> isNatList#(X)) (mark#(uTake1(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(uTake1(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(uTake1(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(uTake1(X)) -> mark#(X), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (mark#(uTake1(X)) -> mark#(X), mark#(tt()) -> active#(tt())) (mark#(uTake1(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(uTake1(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(uTake1(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(uTake1(X)) -> mark#(X), mark#(0()) -> active#(0())) (mark#(uTake1(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(uTake1(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (mark#(uTake1(X)) -> mark#(X), mark#(s(X)) -> s#(mark(X))) (mark#(uTake1(X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (mark#(uTake1(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(uTake1(X)) -> mark#(X), mark#(length(X)) -> length#(mark(X))) (mark#(uTake1(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(uTake1(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(uTake1(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(uTake1(X)) -> mark#(X), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(uTake1(X)) -> mark#(X), mark#(nil()) -> active#(nil())) (mark#(uTake1(X)) -> mark#(X), mark#(take(X1, X2)) -> mark#(X1)) (mark#(uTake1(X)) -> mark#(X), mark#(take(X1, X2)) -> mark#(X2)) (mark#(uTake1(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(uTake1(X)) -> mark#(X), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> mark#(X)) (mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> uTake1#(mark(X))) (mark#(uTake1(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(uTake1(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(uTake1(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (mark#(uTake1(X)) -> mark#(X), mark#(uLength(X1, X2)) -> mark#(X1)) (mark#(uTake1(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(uTake1(X)) -> mark#(X), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (mark#(s(X)) -> mark#(X), mark#(tt()) -> active#(tt())) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(0()) -> active#(0())) (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#(zeros()) -> active#(zeros())) (mark#(s(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(s(X)) -> mark#(X), mark#(nil()) -> active#(nil())) (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#(uTake1(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(uTake1(X)) -> uTake1#(mark(X))) (mark#(s(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(and(tt(), T)) -> mark#(T)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(cons(N, L))) -> isNatList#(L)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(cons(N, L))) -> isNat#(N)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(nil())) -> mark#(tt())) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(take(N, IL))) -> isNatIList#(IL)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(take(N, IL))) -> isNat#(N)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(IL)) -> isNatList#(IL)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(cons(N, IL))) -> isNat#(N)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(0())) -> mark#(tt())) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(s(N))) -> isNat#(N)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(length(L))) -> isNatList#(L)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> isNat#(N)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(0(), IL)) -> uTake1#(isNatIList(IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uTake1(tt())) -> mark#(nil())) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uLength(tt(), L)) -> s#(length(L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uLength(tt(), L)) -> length#(L)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> isNatList#(L)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> isNat#(N)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(nil())) -> mark#(tt())) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(take(N, IL))) -> isNatIList#(IL)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(take(N, IL))) -> isNat#(N)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(IL)) -> isNatList#(IL)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> isNat#(N)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(0())) -> mark#(tt())) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(s(N))) -> isNat#(N)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(length(L))) -> isNatList#(L)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> isNat#(N)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(0(), IL)) -> uTake1#(isNatIList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uTake1(tt())) -> mark#(nil())) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> s#(length(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> length#(L)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL))), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL))), and#(X1, active(X2)) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL))), and#(mark(X1), X2) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL))), and#(active(X1), X2) -> and#(X1, X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(tt()) -> active#(tt())) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(0()) -> active#(0())) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> active#(s(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> s#(mark(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> length#(mark(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(nil()) -> active#(nil())) (mark#(and(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> uTake1#(mark(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> s#(mark(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> length#(mark(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> s#(mark(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> length#(mark(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake1(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> isNatList#(L)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> isNat#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(nil())) -> mark#(tt())) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> isNatIList#(IL)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> isNat#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(IL)) -> isNatList#(IL)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> isNat#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(0())) -> mark#(tt())) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(s(N))) -> isNat#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(length(L))) -> isNatList#(L)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> isNat#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(0(), IL)) -> uTake1#(isNatIList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uTake1(tt())) -> mark#(nil())) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> s#(length(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> length#(L)) (active#(isNat(0())) -> mark#(tt()), mark#(tt()) -> active#(tt())) (active#(isNatList(nil())) -> mark#(tt()), mark#(tt()) -> active#(tt())) (mark#(zeros()) -> active#(zeros()), active#(zeros()) -> mark#(cons(0(), zeros()))) (mark#(zeros()) -> active#(zeros()), active#(zeros()) -> cons#(0(), zeros())) (uLength#(mark(X1), X2) -> uLength#(X1, X2), uLength#(X1, mark(X2)) -> uLength#(X1, X2)) (uLength#(mark(X1), X2) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)) (uLength#(mark(X1), X2) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2)) (uLength#(mark(X1), X2) -> uLength#(X1, X2), uLength#(active(X1), X2) -> uLength#(X1, X2)) (uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, mark(X2)) -> uLength#(X1, X2)) (uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)) (uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2)) (uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(active(X1), X2) -> uLength#(X1, X2)) (take#(mark(X1), X2) -> take#(X1, X2), take#(X1, mark(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#(mark(X1), X2) -> take#(X1, X2)) (take#(mark(X1), X2) -> take#(X1, X2), take#(active(X1), X2) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, active(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#(active(X1), X2) -> take#(X1, X2)) (cons#(mark(X1), X2) -> cons#(X1, X2), cons#(X1, mark(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#(mark(X1), X2) -> cons#(X1, X2)) (cons#(mark(X1), X2) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)) (cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, mark(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#(mark(X1), X2) -> cons#(X1, X2)) (cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)) (and#(mark(X1), X2) -> and#(X1, X2), and#(X1, mark(X2)) -> and#(X1, X2)) (and#(mark(X1), X2) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2)) (and#(mark(X1), X2) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2)) (and#(mark(X1), X2) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)) (and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, mark(X2)) -> and#(X1, X2)) (and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2)) (and#(X1, mark(X2)) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2)) (and#(X1, mark(X2)) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(length(X)) -> length#(mark(X))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(nil()) -> active#(nil())) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake1(X)) -> mark#(X)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake1(X)) -> uTake1#(mark(X))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uLength(X1, X2)) -> mark#(X1)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(length(X)) -> length#(mark(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (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#(nil()) -> active#(nil())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> uTake1#(mark(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2), uLength#(X1, mark(X2)) -> uLength#(X1, X2)) (mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)) (mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2), uLength#(mark(X1), X2) -> uLength#(X1, X2)) (mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2), uLength#(active(X1), X2) -> uLength#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> isNat#(M), isNat#(mark(X)) -> isNat#(X)) (active#(take(s(M), cons(N, IL))) -> isNat#(M), isNat#(active(X)) -> isNat#(X)) (active#(uLength(tt(), L)) -> length#(L), length#(mark(X)) -> length#(X)) (active#(uLength(tt(), L)) -> length#(L), length#(active(X)) -> length#(X)) (active#(isNat(length(L))) -> isNatList#(L), isNatList#(mark(X)) -> isNatList#(X)) (active#(isNat(length(L))) -> isNatList#(L), isNatList#(active(X)) -> isNatList#(X)) (active#(take(s(M), cons(N, IL))) -> isNat#(N), isNat#(mark(X)) -> isNat#(X)) (active#(take(s(M), cons(N, IL))) -> isNat#(N), isNat#(active(X)) -> isNat#(X)) (active#(isNat(s(N))) -> isNat#(N), isNat#(mark(X)) -> isNat#(X)) (active#(isNat(s(N))) -> isNat#(N), isNat#(active(X)) -> isNat#(X)) (active#(isNatList(take(N, IL))) -> isNat#(N), isNat#(mark(X)) -> isNat#(X)) (active#(isNatList(take(N, IL))) -> isNat#(N), isNat#(active(X)) -> isNat#(X)) (active#(take(s(M), cons(N, IL))) -> isNatIList#(IL), isNatIList#(mark(X)) -> isNatIList#(X)) (active#(take(s(M), cons(N, IL))) -> isNatIList#(IL), isNatIList#(active(X)) -> isNatIList#(X)) (active#(isNatIList(cons(N, IL))) -> isNatIList#(IL), isNatIList#(mark(X)) -> isNatIList#(X)) (active#(isNatIList(cons(N, IL))) -> isNatIList#(IL), isNatIList#(active(X)) -> isNatIList#(X)) (active#(isNatList(take(N, IL))) -> isNatIList#(IL), isNatIList#(mark(X)) -> isNatIList#(X)) (active#(isNatList(take(N, IL))) -> isNatIList#(IL), isNatIList#(active(X)) -> isNatIList#(X)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> s#(mark(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> mark#(X)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> length#(mark(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> mark#(X2)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake1(X)) -> mark#(X)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L)), and#(active(X1), X2) -> and#(X1, X2)) (active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL)), and#(active(X1), X2) -> and#(X1, X2)) (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#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(and(tt(), T)) -> mark#(T), mark#(tt()) -> active#(tt())) (active#(and(tt(), T)) -> mark#(T), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), T)) -> mark#(T), mark#(0()) -> active#(0())) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> active#(s(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> s#(mark(X))) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> length#(mark(X))) (active#(and(tt(), T)) -> mark#(T), mark#(zeros()) -> active#(zeros())) (active#(and(tt(), T)) -> mark#(T), mark#(cons(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(and(tt(), T)) -> mark#(T), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(and(tt(), T)) -> mark#(T), mark#(nil()) -> active#(nil())) (active#(and(tt(), T)) -> mark#(T), mark#(take(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(take(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake1(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4)) (mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (active#(take(0(), IL)) -> uTake1#(isNatIList(IL)), uTake1#(mark(X)) -> uTake1#(X)) (active#(take(0(), IL)) -> uTake1#(isNatIList(IL)), uTake1#(active(X)) -> uTake1#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> s#(mark(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> length#(mark(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake1(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> and#(mark(X1), mark(X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> s#(mark(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(length(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(length(X)) -> length#(mark(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake1(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake1(X)) -> uTake1#(mark(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake2(X1, X2, X3, X4)) -> uTake2#(mark(X1), X2, X3, X4)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uLength(X1, X2)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uLength(X1, X2)) -> uLength#(mark(X1), X2)) (mark#(length(X)) -> length#(mark(X)), length#(mark(X)) -> length#(X)) (mark#(length(X)) -> length#(mark(X)), length#(active(X)) -> length#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> isNatList#(L)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> isNat#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(nil())) -> mark#(tt())) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(N, IL))) -> isNatIList#(IL)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(N, IL))) -> isNat#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(IL)) -> isNatList#(IL)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> isNat#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(0())) -> mark#(tt())) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(N))) -> isNat#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(L))) -> isNatList#(L)) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> isNat#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L)) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(0(), IL)) -> uTake1#(isNatIList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)) (mark#(isNat(X)) -> active#(isNat(X)), active#(uTake1(tt())) -> mark#(nil())) (mark#(isNat(X)) -> active#(isNat(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL)) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> s#(length(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> length#(L)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> isNatList#(L)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> isNat#(N)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(nil())) -> mark#(tt())) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(N, IL))) -> isNatIList#(IL)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(N, IL))) -> isNat#(N)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(IL)) -> isNatList#(IL)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> isNatIList#(IL)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> isNat#(N)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(0())) -> mark#(tt())) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(N))) -> isNat#(N)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(L))) -> isNatList#(L)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> and#(isNat(N), isNatList(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> isNat#(N)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> uLength#(and(isNat(N), isNatList(L)), L)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(0(), IL)) -> uTake1#(isNatIList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> and#(isNat(N), isNatIList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> uTake2#(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uTake1(tt())) -> mark#(nil())) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uTake2(tt(), M, N, IL)) -> cons#(N, take(M, IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uTake2(tt(), M, N, IL)) -> take#(M, IL)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> s#(length(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> length#(L)) } SCCS: Scc: { uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2), uLength#(active(X1), X2) -> uLength#(X1, X2)} Scc: { uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} Scc: { uTake1#(mark(X)) -> uTake1#(X), uTake1#(active(X)) -> uTake1#(X)} 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: { 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: { length#(mark(X)) -> length#(X), length#(active(X)) -> length#(X)} Scc: { s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X)} Scc: { isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X)} Scc: { isNatIList#(mark(X)) -> isNatIList#(X), isNatIList#(active(X)) -> isNatIList#(X)} Scc: { isNatList#(mark(X)) -> isNatList#(X), isNatList#(active(X)) -> isNatList#(X)} Scc: { and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)} Scc: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), 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#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(take(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} SCC: Strict: { uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2), uLength#(active(X1), X2) -> uLength#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uLength#) = 0 Strict: { uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2)} EDG: {(uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2)) (uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)) (uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(X1, mark(X2)) -> uLength#(X1, X2)) (uLength#(mark(X1), X2) -> uLength#(X1, X2), uLength#(X1, mark(X2)) -> uLength#(X1, X2)) (uLength#(mark(X1), X2) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)) (uLength#(mark(X1), X2) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2)) (uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, mark(X2)) -> uLength#(X1, X2)) (uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)) (uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2))} SCCS: Scc: { uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2)} SCC: Strict: { uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(mark(X1), X2) -> uLength#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uLength#) = 0 Strict: { uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)} EDG: {(uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)) (uLength#(X1, active(X2)) -> uLength#(X1, X2), uLength#(X1, mark(X2)) -> uLength#(X1, X2)) (uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, mark(X2)) -> uLength#(X1, X2)) (uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2))} SCCS: Scc: { uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)} SCC: Strict: { uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, active(X2)) -> uLength#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uLength#) = 1 Strict: {uLength#(X1, mark(X2)) -> uLength#(X1, X2)} EDG: {(uLength#(X1, mark(X2)) -> uLength#(X1, X2), uLength#(X1, mark(X2)) -> uLength#(X1, X2))} SCCS: Scc: {uLength#(X1, mark(X2)) -> uLength#(X1, X2)} SCC: Strict: {uLength#(X1, mark(X2)) -> uLength#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uLength#) = 1 Strict: {} Qed SCC: Strict: { uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, active(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uTake2#) = 3 Strict: { uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} EDG: {(uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4))} SCCS: Scc: { uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} SCC: Strict: { uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(active(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uTake2#) = 0 Strict: { uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} EDG: {(uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4))} SCCS: Scc: { uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} SCC: Strict: { uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, mark(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uTake2#) = 1 Strict: { uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} EDG: {(uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4))} SCCS: Scc: { uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} SCC: Strict: { uTake2#(X1, X2, X3, mark(X4)) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uTake2#) = 3 Strict: { uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} EDG: {(uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4))} SCCS: Scc: { uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} SCC: Strict: { uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(mark(X1), X2, X3, X4) -> uTake2#(X1, X2, X3, X4)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uTake2#) = 0 Strict: { uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)} EDG: {(uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4))} SCCS: Scc: { uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)} SCC: Strict: { uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, active(X2), X3, X4) -> uTake2#(X1, X2, X3, X4)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uTake2#) = 1 Strict: { uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)} EDG: {(uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4)) (uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4))} SCCS: Scc: { uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)} SCC: Strict: { uTake2#(X1, X2, mark(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uTake2#) = 2 Strict: {uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)} EDG: {(uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4), uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4))} SCCS: Scc: {uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)} SCC: Strict: {uTake2#(X1, X2, active(X3), X4) -> uTake2#(X1, X2, X3, X4)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uTake2#) = 2 Strict: {} Qed SCC: Strict: { uTake1#(mark(X)) -> uTake1#(X), uTake1#(active(X)) -> uTake1#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uTake1#) = 0 Strict: {uTake1#(active(X)) -> uTake1#(X)} EDG: {(uTake1#(active(X)) -> uTake1#(X), uTake1#(active(X)) -> uTake1#(X))} SCCS: Scc: {uTake1#(active(X)) -> uTake1#(X)} SCC: Strict: {uTake1#(active(X)) -> uTake1#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(uTake1#) = 0 Strict: {} Qed SCC: 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(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(take#) = 0 Strict: { take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)} EDG: {(take#(X1, active(X2)) -> take#(X1, X2), take#(mark(X1), 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#(X1, mark(X2)) -> take#(X1, X2)) (take#(mark(X1), X2) -> take#(X1, X2), take#(X1, mark(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#(mark(X1), X2) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2))} SCCS: Scc: { take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)} SCC: Strict: { take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(take#) = 0 Strict: { take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2)} EDG: {(take#(X1, active(X2)) -> take#(X1, X2), take#(X1, active(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#(X1, mark(X2)) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2))} SCCS: Scc: { take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2)} SCC: Strict: { take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(take#) = 1 Strict: {take#(X1, active(X2)) -> take#(X1, X2)} EDG: {(take#(X1, active(X2)) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2))} SCCS: Scc: {take#(X1, active(X2)) -> take#(X1, X2)} SCC: Strict: {take#(X1, active(X2)) -> take#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(take#) = 1 Strict: {} Qed SCC: 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(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(cons#) = 1 Strict: {cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)} EDG: {(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#(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, 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))} SCCS: Scc: {cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)} SCC: Strict: {cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(cons#) = 0 Strict: {cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2)} EDG: {(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#(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))} SCCS: Scc: {cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2)} SCC: Strict: {cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(cons#) = 1 Strict: {cons#(mark(X1), X2) -> cons#(X1, X2)} EDG: {(cons#(mark(X1), X2) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2))} SCCS: Scc: {cons#(mark(X1), X2) -> cons#(X1, X2)} SCC: Strict: {cons#(mark(X1), X2) -> cons#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(cons#) = 0 Strict: {} Qed SCC: Strict: { length#(mark(X)) -> length#(X), length#(active(X)) -> length#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(length#) = 0 Strict: {length#(active(X)) -> length#(X)} EDG: {(length#(active(X)) -> length#(X), length#(active(X)) -> length#(X))} SCCS: Scc: {length#(active(X)) -> length#(X)} SCC: Strict: {length#(active(X)) -> length#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(length#) = 0 Strict: {} Qed SCC: Strict: { s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(s#) = 0 Strict: {s#(active(X)) -> s#(X)} EDG: {(s#(active(X)) -> s#(X), s#(active(X)) -> s#(X))} SCCS: Scc: {s#(active(X)) -> s#(X)} SCC: Strict: {s#(active(X)) -> s#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(s#) = 0 Strict: {} Qed SCC: Strict: { isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(isNat#) = 0 Strict: {isNat#(active(X)) -> isNat#(X)} EDG: {(isNat#(active(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X))} SCCS: Scc: {isNat#(active(X)) -> isNat#(X)} SCC: Strict: {isNat#(active(X)) -> isNat#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(isNat#) = 0 Strict: {} Qed SCC: Strict: { isNatIList#(mark(X)) -> isNatIList#(X), isNatIList#(active(X)) -> isNatIList#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(isNatIList#) = 0 Strict: {isNatIList#(active(X)) -> isNatIList#(X)} EDG: {(isNatIList#(active(X)) -> isNatIList#(X), isNatIList#(active(X)) -> isNatIList#(X))} SCCS: Scc: {isNatIList#(active(X)) -> isNatIList#(X)} SCC: Strict: {isNatIList#(active(X)) -> isNatIList#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(isNatIList#) = 0 Strict: {} Qed SCC: Strict: { isNatList#(mark(X)) -> isNatList#(X), isNatList#(active(X)) -> isNatList#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(isNatList#) = 0 Strict: {isNatList#(active(X)) -> isNatList#(X)} EDG: {(isNatList#(active(X)) -> isNatList#(X), isNatList#(active(X)) -> isNatList#(X))} SCCS: Scc: {isNatList#(active(X)) -> isNatList#(X)} SCC: Strict: {isNatList#(active(X)) -> isNatList#(X)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(isNatList#) = 0 Strict: {} Qed SCC: Strict: { and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(and#) = 0 Strict: { and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)} EDG: {(and#(X1, active(X2)) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)) (and#(X1, active(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2)) (and#(X1, active(X2)) -> and#(X1, X2), and#(X1, mark(X2)) -> and#(X1, X2)) (and#(active(X1), X2) -> and#(X1, X2), and#(X1, mark(X2)) -> and#(X1, X2)) (and#(active(X1), X2) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2)) (and#(active(X1), X2) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)) (and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, mark(X2)) -> and#(X1, X2)) (and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2)) (and#(X1, mark(X2)) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2))} SCCS: Scc: { and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)} SCC: Strict: { and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(and#) = 0 Strict: { and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2)} EDG: {(and#(X1, active(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2)) (and#(X1, active(X2)) -> and#(X1, X2), and#(X1, mark(X2)) -> and#(X1, X2)) (and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, mark(X2)) -> and#(X1, X2)) (and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2))} SCCS: Scc: { and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2)} SCC: Strict: { and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(and#) = 1 Strict: {and#(X1, active(X2)) -> and#(X1, X2)} EDG: {(and#(X1, active(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2))} SCCS: Scc: {and#(X1, active(X2)) -> and#(X1, X2)} SCC: Strict: {and#(X1, active(X2)) -> and#(X1, X2)} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} SPSC: Simple Projection: pi(and#) = 1 Strict: {} Qed SCC: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), 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#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(take(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} POLY: Argument Filtering: pi(uLength) = [0,1], pi(uTake2) = [0,1,2,3], pi(uTake1) = 0, pi(take) = [0,1], pi(nil) = [], pi(cons) = [0,1], pi(zeros) = [], pi(length) = [0], pi(s) = 0, pi(0) = [], pi(isNat) = [], pi(isNatIList) = [], pi(isNatList) = [], pi(tt) = [], pi(and) = [0,1], pi(active#) = 0, pi(active) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [uTake2](x0, x1, x2, x3) = x0 + x1 + x2 + x3, [uLength](x0, x1) = x0 + x1 + 1, [take](x0, x1) = x0 + x1, [cons](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [length](x0) = x0 + 1, [isNat] = 0, [isNatIList] = 0, [isNatList] = 0, [zeros] = 0, [0] = 0, [tt] = 0 Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(length(X)) -> active#(length(mark(X))), mark#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(take(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} EDG: { (mark#(s(X)) -> active#(s(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(s(X)) -> active#(s(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(s(X)) -> active#(s(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(and(tt(), T)) -> mark#(T)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake1(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> active#(s(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(take(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(take(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> mark#(X)) (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)) -> mark#(X2)) (mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(take(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(zeros()) -> active#(zeros())) (mark#(take(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(s(X)) -> active#(s(mark(X)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(take(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(take(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> mark#(X)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (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)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(uTake1(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(take(X1, X2)) -> mark#(X2)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(take(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(s(X)) -> active#(s(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(s(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(and(X1, X2)) -> mark#(X2)) (active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(uTake1(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(uTake1(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(uTake1(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> mark#(X)) (mark#(uTake1(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(uTake1(X)) -> mark#(X), mark#(take(X1, X2)) -> mark#(X2)) (mark#(uTake1(X)) -> mark#(X), mark#(take(X1, X2)) -> mark#(X1)) (mark#(uTake1(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(uTake1(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(uTake1(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(uTake1(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(uTake1(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (mark#(uTake1(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(uTake1(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(uTake1(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(uTake1(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(uTake1(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(uTake1(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(uTake1(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(take(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(take(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(take(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> mark#(X)) (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#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(take(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(take(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(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#(isNat(X)) -> active#(isNat(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(take(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(take(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(zeros()) -> active#(zeros()), active#(zeros()) -> mark#(cons(0(), zeros()))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake1(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake1(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake1(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> mark#(X2)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake1(X)) -> mark#(X)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake1(X)) -> mark#(X)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> active#(s(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(take(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(take(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake1(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (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#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(s(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (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#(uTake1(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(and(tt(), T)) -> mark#(T)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake1(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> active#(s(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X2)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uTake1(X)) -> mark#(X)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> active#(s(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(zeros()) -> active#(zeros())) (active#(and(tt(), T)) -> mark#(T), mark#(cons(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(and(tt(), T)) -> mark#(T), mark#(take(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(take(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake1(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) } SCCS: Scc: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(length(X)) -> active#(length(mark(X))), mark#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(take(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} SCC: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(length(X)) -> active#(length(mark(X))), mark#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(take(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(take(0(), IL)) -> mark#(uTake1(isNatIList(IL))), active#(take(s(M), cons(N, IL))) -> mark#(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} POLY: Argument Filtering: pi(uLength) = [], pi(uTake2) = [0,2], pi(uTake1) = 0, pi(take) = [0,1], pi(nil) = [], pi(cons) = [0], pi(zeros) = [], pi(length) = [], pi(s) = 0, pi(0) = [], pi(isNat) = [], pi(isNatIList) = [], pi(isNatList) = [], pi(tt) = [], pi(and) = [0,1], pi(active#) = 0, pi(active) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [uTake2](x0, x1) = x0 + x1 + 1, [uLength] = 0, [take](x0, x1) = x0 + x1 + 1, [cons](x0) = x0 + 1, [and](x0, x1) = x0 + x1, [length] = 0, [isNat] = 0, [isNatIList] = 0, [isNatList] = 0, [zeros] = 1, [0] = 0, [tt] = 0 Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(length(X)) -> active#(length(mark(X))), mark#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} EDG: { (mark#(s(X)) -> active#(s(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(s(X)) -> active#(s(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(s(X)) -> active#(s(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(zeros()) -> active#(zeros()), active#(zeros()) -> mark#(cons(0(), zeros()))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> mark#(X)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(zeros()) -> mark#(cons(0(), zeros())), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake1(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake1(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> active#(s(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(uTake1(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(uTake1(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> mark#(X)) (mark#(uTake1(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(uTake1(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(uTake1(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(uTake1(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(uTake1(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (mark#(uTake1(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(uTake1(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(uTake1(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(uTake1(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(uTake1(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(uTake1(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(uTake1(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> active#(s(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(zeros()) -> active#(zeros())) (active#(and(tt(), T)) -> mark#(T), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(and(tt(), T)) -> mark#(T), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake1(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (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#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(s(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(uTake1(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake1(X)) -> mark#(X)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake1(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake1(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake1(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(and(tt(), T)) -> mark#(T)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> active#(s(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake1(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> active#(s(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) } SCCS: Scc: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(length(X)) -> active#(length(mark(X))), mark#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} SCC: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(length(X)) -> active#(length(mark(X))), mark#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(uTake1(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} POLY: Argument Filtering: pi(uLength) = [], pi(uTake2) = [], pi(uTake1) = [0], pi(take) = 0, pi(nil) = [], pi(cons) = [], pi(zeros) = [], pi(length) = [], pi(s) = 0, pi(0) = [], pi(isNat) = [], pi(isNatIList) = [], pi(isNatList) = [], pi(tt) = [], pi(and) = [0,1], pi(active#) = 0, pi(active) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [uTake2] = 0, [uLength] = 0, [cons] = 0, [and](x0, x1) = x0 + x1, [uTake1](x0) = x0 + 1, [length] = 0, [isNat] = 0, [isNatIList] = 0, [isNatList] = 0, [zeros] = 0, [tt] = 0 Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(length(X)) -> active#(length(mark(X))), mark#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} EDG: { (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(and(tt(), T)) -> mark#(T)) (mark#(zeros()) -> active#(zeros()), active#(zeros()) -> mark#(cons(0(), zeros()))) (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), T)) -> mark#(T)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> active#(s(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> active#(s(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(zeros()) -> mark#(cons(0(), zeros())), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> active#(s(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(zeros()) -> active#(zeros())) (active#(and(tt(), T)) -> mark#(T), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(and(tt(), T)) -> mark#(T), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uTake1(X)) -> active#(uTake1(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(s(X)) -> active#(s(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(s(X)) -> active#(s(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(s(X)) -> active#(s(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> active#(s(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake1(X)) -> active#(uTake1(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) } SCCS: Scc: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(length(X)) -> active#(length(mark(X))), mark#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} SCC: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(length(X)) -> active#(length(mark(X))), mark#(zeros()) -> active#(zeros()), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(uTake1(X)) -> active#(uTake1(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} POLY: Argument Filtering: pi(uLength) = [], pi(uTake2) = [], pi(uTake1) = [], pi(take) = [], pi(nil) = [], pi(cons) = [], pi(zeros) = [], pi(length) = [], pi(s) = [], pi(0) = [], pi(isNat) = [], pi(isNatIList) = [], pi(isNatList) = [], pi(tt) = [], pi(and) = [], pi(active#) = 0, pi(active) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [uTake2] = 1, [uLength] = 1, [take] = 0, [cons] = 0, [and] = 1, [uTake1] = 0, [length] = 1, [s] = 0, [isNat] = 1, [isNatIList] = 1, [isNatList] = 1, [zeros] = 1 Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(zeros()) -> active#(zeros()), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} EDG: { (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(and(tt(), T)) -> mark#(T), mark#(zeros()) -> active#(zeros())) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X2), mark#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(zeros()) -> active#(zeros()), active#(zeros()) -> mark#(cons(0(), zeros()))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), T)) -> mark#(T)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(s(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(and(tt(), T)) -> mark#(T)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) } SCCS: Scc: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} SCC: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uTake2(tt(), M, N, IL)) -> mark#(cons(N, take(M, IL))), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} POLY: Argument Filtering: pi(uLength) = [], pi(uTake2) = [], pi(uTake1) = [], pi(take) = [], pi(nil) = [], pi(cons) = [], pi(zeros) = [], pi(length) = [], pi(s) = 0, pi(0) = [], pi(isNat) = [], pi(isNatIList) = [], pi(isNatList) = [], pi(tt) = [], pi(and) = [0,1], pi(active#) = 0, pi(active) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [uTake2] = 1, [uLength] = 0, [cons] = 0, [and](x0, x1) = x0 + x1, [length] = 0, [isNat] = 0, [isNatIList] = 0, [isNatList] = 0, [tt] = 0 Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} EDG: { (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), active#(and(tt(), T)) -> mark#(T)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) } SCCS: Scc: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} SCC: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uTake2(X1, X2, X3, X4)) -> active#(uTake2(mark(X1), X2, X3, X4)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} POLY: Argument Filtering: pi(uLength) = [], pi(uTake2) = [], pi(uTake1) = [], pi(take) = [], pi(nil) = [], pi(cons) = [], pi(zeros) = [], pi(length) = [], pi(s) = [], pi(0) = [], pi(isNat) = [], pi(isNatIList) = [], pi(isNatList) = [], pi(tt) = [], pi(and) = [], pi(active#) = 0, pi(active) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [uTake2] = 0, [uLength] = 1, [and] = 1, [length] = 1, [isNat] = 1, [isNatIList] = 1, [isNatList] = 1 Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} EDG: { (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) } SCCS: Scc: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} SCC: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatList(take(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} POLY: Argument Filtering: pi(uLength) = 1, pi(uTake2) = [1,2,3], pi(uTake1) = [], pi(take) = [0,1], pi(nil) = [], pi(cons) = [0,1], pi(zeros) = [], pi(length) = 0, pi(s) = 0, pi(0) = [], pi(isNat) = 0, pi(isNatIList) = 0, pi(isNatList) = 0, pi(tt) = [], pi(and) = [0,1], pi(active#) = 0, pi(active) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [take](x0, x1) = x0 + x1 + 1, [cons](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [tt] = 0 Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} EDG: { (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), T)) -> mark#(T)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(IL)) -> mark#(isNatList(IL)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(IL)) -> mark#(isNatList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) } SCCS: Scc: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} SCC: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatIList(IL)) -> mark#(isNatList(IL)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} POLY: Argument Filtering: pi(uLength) = 1, pi(uTake2) = [1,2,3], pi(uTake1) = [], pi(take) = [0,1], pi(nil) = [], pi(cons) = [0,1], pi(zeros) = [], pi(length) = 0, pi(s) = 0, pi(0) = [], pi(isNat) = 0, pi(isNatIList) = [0], pi(isNatList) = 0, pi(tt) = [], pi(and) = [0,1], pi(active#) = 0, pi(active) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [cons](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [isNatIList](x0) = x0 + 1, [tt] = 0 Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} EDG: { (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), T)) -> mark#(T)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(length(L))) -> mark#(isNatList(L)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(L))) -> mark#(isNatList(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) } SCCS: Scc: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} SCC: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(isNat(length(L))) -> mark#(isNatList(L)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} POLY: Argument Filtering: pi(uLength) = [1], pi(uTake2) = [1,2,3], pi(uTake1) = [], pi(take) = [0,1], pi(nil) = [], pi(cons) = [0,1], pi(zeros) = [], pi(length) = [0], pi(s) = 0, pi(0) = [], pi(isNat) = 0, pi(isNatIList) = 0, pi(isNatList) = 0, pi(tt) = [], pi(and) = [0,1], pi(active#) = 0, pi(active) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [uLength](x0) = x0 + 1, [cons](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [length](x0) = x0 + 1, [tt] = 0 Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} EDG: { (mark#(length(X)) -> active#(length(mark(X))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), T)) -> mark#(T)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNat(X)) -> active#(isNat(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), T)) -> mark#(T)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNat(s(N))) -> mark#(isNat(N)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), active#(and(tt(), T)) -> mark#(T)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T)) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X2), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> mark#(X2)) (active#(and(tt(), T)) -> mark#(T), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), T)) -> mark#(T), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), T)) -> mark#(T), mark#(s(X)) -> mark#(X)) (active#(and(tt(), T)) -> mark#(T), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), T)) -> mark#(T), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), T)) -> mark#(T)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(N))) -> mark#(isNat(N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(uLength(tt(), L)) -> mark#(s(length(L)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X2)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(uLength(tt(), L)) -> mark#(s(length(L))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2))) } SCCS: Scc: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} SCC: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), mark(X2))), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), mark#(isNat(X)) -> active#(isNat(X)), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(uLength(X1, X2)) -> active#(uLength(mark(X1), X2)), active#(and(tt(), T)) -> mark#(T), active#(isNatList(cons(N, L))) -> mark#(and(isNat(N), isNatList(L))), active#(isNatIList(cons(N, IL))) -> mark#(and(isNat(N), isNatIList(IL))), active#(isNat(s(N))) -> mark#(isNat(N)), active#(length(cons(N, L))) -> mark#(uLength(and(isNat(N), isNatList(L)), L)), active#(uLength(tt(), L)) -> mark#(s(length(L)))} Weak: { mark(and(X1, X2)) -> active(and(mark(X1), mark(X2))), mark(tt()) -> active(tt()), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(X)), mark(isNat(X)) -> active(isNat(X)), mark(0()) -> active(0()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(zeros()) -> active(zeros()), mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(nil()) -> active(nil()), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(uTake1(X)) -> active(uTake1(mark(X))), mark(uTake2(X1, X2, X3, X4)) -> active(uTake2(mark(X1), X2, X3, X4)), mark(uLength(X1, X2)) -> active(uLength(mark(X1), X2)), active(and(tt(), T)) -> mark(T), active(isNatList(cons(N, L))) -> mark(and(isNat(N), isNatList(L))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNatIList(IL)) -> mark(isNatList(IL)), active(isNatIList(zeros())) -> mark(tt()), active(isNatIList(cons(N, IL))) -> mark(and(isNat(N), isNatIList(IL))), active(isNat(0())) -> mark(tt()), active(isNat(s(N))) -> mark(isNat(N)), active(isNat(length(L))) -> mark(isNatList(L)), active(length(cons(N, L))) -> mark(uLength(and(isNat(N), isNatList(L)), L)), active(zeros()) -> mark(cons(0(), zeros())), active(take(0(), IL)) -> mark(uTake1(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(uTake2(and(isNat(M), and(isNat(N), isNatIList(IL))), M, N, IL)), active(uTake1(tt())) -> mark(nil()), active(uTake2(tt(), M, N, IL)) -> mark(cons(N, take(M, IL))), active(uLength(tt(), L)) -> mark(s(length(L))), and(X1, mark(X2)) -> and(X1, X2), and(X1, active(X2)) -> and(X1, X2), and(mark(X1), X2) -> and(X1, X2), and(active(X1), X2) -> and(X1, X2), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), 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), 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), uTake1(mark(X)) -> uTake1(X), uTake1(active(X)) -> uTake1(X), uTake2(X1, X2, X3, mark(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, X3, active(X4)) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, mark(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, X2, active(X3), X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, mark(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(X1, active(X2), X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(mark(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uTake2(active(X1), X2, X3, X4) -> uTake2(X1, X2, X3, X4), uLength(X1, mark(X2)) -> uLength(X1, X2), uLength(X1, active(X2)) -> uLength(X1, X2), uLength(mark(X1), X2) -> uLength(X1, X2), uLength(active(X1), X2) -> uLength(X1, X2)} Fail