MAYBE TRS: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} DP: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(0()) -> active#(0()), mark#(zeros()) -> active#(zeros()), mark#(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#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(U11(X1, X2)) -> U11#(mark(X1), X2), mark#(tt()) -> active#(tt()), mark#(nil()) -> active#(nil()), mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X))), mark#(U21(X)) -> U21#(mark(X)), 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#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(and(X1, X2)) -> and#(mark(X1), X2), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(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), active#(zeros()) -> mark#(cons(0(), zeros())), active#(zeros()) -> cons#(0(), zeros()), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L), active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N)), active#(length(cons(N, L))) -> isNat#(N), active#(length(cons(N, L))) -> isNatList#(L), active#(length(nil())) -> mark#(0()), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(U11(tt(), L)) -> s#(length(L)), active#(U11(tt(), L)) -> length#(L), active#(U21(tt())) -> mark#(nil()), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), active#(take(0(), IL)) -> U21#(isNatIList(IL)), active#(take(0(), IL)) -> isNatIList#(IL), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N)), active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N))), active#(take(s(M), cons(N, IL))) -> isNat#(N), active#(take(s(M), cons(N, IL))) -> isNat#(M), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL)), active#(U31(tt(), IL, M, N)) -> take#(M, IL), active#(and(tt(), X)) -> mark#(X), active#(isNat(0())) -> mark#(tt()), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(s(V1))) -> isNat#(V1), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNat(length(V1))) -> isNatList#(V1), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2)), active#(isNatList(cons(V1, V2))) -> isNat#(V1), active#(isNatList(cons(V1, V2))) -> isNatList#(V2), active#(isNatList(nil())) -> mark#(tt()), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2)), active#(isNatList(take(V1, V2))) -> isNat#(V1), active#(isNatList(take(V1, V2))) -> isNatIList#(V2), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(V)) -> isNatList#(V), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2)), active#(isNatIList(cons(V1, V2))) -> isNat#(V1), active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2), active#(isNatIList(zeros())) -> mark#(tt()), s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X), length#(mark(X)) -> length#(X), length#(active(X)) -> length#(X), U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2), U11#(active(X1), X2) -> U11#(X1, X2), U21#(mark(X)) -> U21#(X), U21#(active(X)) -> U21#(X), 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), U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), 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), isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X), isNatList#(mark(X)) -> isNatList#(X), isNatList#(active(X)) -> isNatList#(X), isNatIList#(mark(X)) -> isNatIList#(X), isNatIList#(active(X)) -> isNatIList#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U21(X)) -> U21#(mark(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U21(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> length#(mark(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> s#(mark(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> s#(mark(X)), s#(active(X)) -> s#(X)) (mark#(s(X)) -> s#(mark(X)), s#(mark(X)) -> s#(X)) (mark#(U21(X)) -> U21#(mark(X)), U21#(active(X)) -> U21#(X)) (mark#(U21(X)) -> U21#(mark(X)), U21#(mark(X)) -> U21#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> isNat#(V1)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> isNatList#(V)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> isNatIList#(V2)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> isNat#(V1)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(nil())) -> mark#(tt())) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> isNatList#(V2)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> isNat#(V1)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> isNatList#(V1)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> isNat#(V1)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(0())) -> mark#(tt())) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U31(tt(), IL, M, N)) -> take#(M, IL)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, 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#(M)) (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))) -> and#(isNatIList(IL), and(isNat(M), isNat(N)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(0(), IL)) -> U21#(isNatIList(IL))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U21(tt())) -> mark#(nil())) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> length#(L)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> s#(length(L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(nil())) -> mark#(0())) (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))) -> and#(isNatList(L), isNat(N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L), U11#(active(X1), X2) -> U11#(X1, X2)) (active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L), U11#(mark(X1), X2) -> U11#(X1, X2)) (active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L), U11#(X1, active(X2)) -> U11#(X1, X2)) (active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L), U11#(X1, mark(X2)) -> U11#(X1, X2)) (active#(U11(tt(), L)) -> s#(length(L)), s#(active(X)) -> s#(X)) (active#(U11(tt(), L)) -> s#(length(L)), s#(mark(X)) -> s#(X)) (mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4), U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N), U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4)) (active#(U11(tt(), L)) -> length#(L), length#(active(X)) -> length#(X)) (active#(U11(tt(), L)) -> length#(L), length#(mark(X)) -> length#(X)) (active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N)), and#(active(X1), X2) -> and#(X1, X2)) (active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2)), and#(active(X1), X2) -> and#(X1, X2)) (active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2)), and#(active(X1), X2) -> and#(X1, X2)) (active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2)), and#(X1, mark(X2)) -> and#(X1, X2)) (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#(U31(tt(), IL, M, N)) -> take#(M, IL), take#(active(X1), X2) -> take#(X1, X2)) (active#(U31(tt(), IL, M, N)) -> take#(M, IL), take#(mark(X1), X2) -> take#(X1, X2)) (active#(U31(tt(), IL, M, N)) -> take#(M, IL), take#(X1, active(X2)) -> take#(X1, X2)) (active#(U31(tt(), IL, M, N)) -> take#(M, IL), take#(X1, mark(X2)) -> take#(X1, X2)) (active#(take(0(), IL)) -> isNatIList#(IL), isNatIList#(active(X)) -> isNatIList#(X)) (active#(take(0(), IL)) -> isNatIList#(IL), isNatIList#(mark(X)) -> isNatIList#(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#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> take#(mark(X1), 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)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U21(X)) -> U21#(mark(X))) (mark#(s(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(nil()) -> active#(nil())) (mark#(s(X)) -> mark#(X), mark#(tt()) -> active#(tt())) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> length#(mark(X))) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> s#(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#(zeros()) -> active#(zeros())) (mark#(s(X)) -> mark#(X), mark#(0()) -> active#(0())) (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#(cons(X1, X2)) -> mark#(X1)) (mark#(U21(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U21(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(U21(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X)) -> mark#(X), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(U21(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (mark#(U21(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(U21(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (mark#(U21(X)) -> mark#(X), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(U21(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(U21(X)) -> mark#(X), mark#(take(X1, X2)) -> mark#(X2)) (mark#(U21(X)) -> mark#(X), mark#(take(X1, X2)) -> mark#(X1)) (mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> U21#(mark(X))) (mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (mark#(U21(X)) -> mark#(X), mark#(nil()) -> active#(nil())) (mark#(U21(X)) -> mark#(X), mark#(tt()) -> active#(tt())) (mark#(U21(X)) -> mark#(X), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (mark#(U21(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(U21(X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(U21(X)) -> mark#(X), mark#(length(X)) -> length#(mark(X))) (mark#(U21(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(U21(X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (mark#(U21(X)) -> mark#(X), mark#(s(X)) -> s#(mark(X))) (mark#(U21(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U21(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(U21(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(U21(X)) -> mark#(X), mark#(0()) -> active#(0())) (mark#(U21(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(U21(X)) -> mark#(X), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(U21(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (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)) (U21#(mark(X)) -> U21#(X), U21#(active(X)) -> U21#(X)) (U21#(mark(X)) -> U21#(X), U21#(mark(X)) -> U21#(X)) (isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X)) (isNat#(mark(X)) -> isNat#(X), isNat#(mark(X)) -> isNat#(X)) (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)) (active#(isNat(s(V1))) -> isNat#(V1), isNat#(active(X)) -> isNat#(X)) (active#(isNat(s(V1))) -> isNat#(V1), isNat#(mark(X)) -> isNat#(X)) (active#(isNatList(cons(V1, V2))) -> isNat#(V1), isNat#(active(X)) -> isNat#(X)) (active#(isNatList(cons(V1, V2))) -> isNat#(V1), isNat#(mark(X)) -> isNat#(X)) (active#(isNatIList(cons(V1, V2))) -> isNat#(V1), isNat#(active(X)) -> isNat#(X)) (active#(isNatIList(cons(V1, V2))) -> isNat#(V1), isNat#(mark(X)) -> isNat#(X)) (mark#(zeros()) -> active#(zeros()), active#(zeros()) -> cons#(0(), zeros())) (mark#(zeros()) -> active#(zeros()), active#(zeros()) -> mark#(cons(0(), zeros()))) (active#(U21(tt())) -> mark#(nil()), mark#(nil()) -> active#(nil())) (active#(isNatList(nil())) -> mark#(tt()), mark#(tt()) -> active#(tt())) (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(cons(V1, V2))) -> isNatIList#(V2)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(V1, V2))) -> isNat#(V1)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(V)) -> isNatList#(V)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> isNatIList#(V2)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> isNat#(V1)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (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(V1, V2))) -> isNatList#(V2)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(V1, V2))) -> isNat#(V1)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(V1))) -> isNatList#(V1)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(V1))) -> isNat#(V1)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (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#(and(tt(), X)) -> mark#(X)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U31(tt(), IL, M, N)) -> take#(M, IL)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (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))) -> 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))) -> and#(isNatIList(IL), and(isNat(M), isNat(N)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (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)) -> U21#(isNatIList(IL))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U21(tt())) -> mark#(nil())) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U11(tt(), L)) -> length#(L)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U11(tt(), L)) -> s#(length(L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(nil())) -> mark#(0())) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> isNatList#(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))) -> and#(isNatList(L), isNat(N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U21(X)) -> U21#(mark(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U21(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> length#(mark(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> s#(mark(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> U21#(mark(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> length#(mark(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> s#(mark(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N))), and#(active(X1), X2) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N))), and#(mark(X1), X2) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N))), and#(X1, active(X2)) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N))), and#(X1, mark(X2)) -> and#(X1, X2)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> isNat#(V1)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> isNatList#(V)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> isNatIList#(V2)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> isNat#(V1)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(nil())) -> mark#(tt())) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> isNatList#(V2)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> isNat#(V1)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> isNatList#(V1)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> isNat#(V1)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(0())) -> mark#(tt())) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> take#(M, IL)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(0(), IL)) -> U21#(isNatIList(IL))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U21(tt())) -> mark#(nil())) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> length#(L)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> s#(length(L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(nil())) -> mark#(0())) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> isNat#(N)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> mark#(X2)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U21(X)) -> U21#(mark(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U21(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> length#(mark(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> s#(mark(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> active#(s(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(take(X1, X2)) -> mark#(X2)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(take(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U21(X)) -> U21#(mark(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U21(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> length#(mark(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(s(X)) -> s#(mark(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(s(X)) -> active#(s(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(s(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> isNatIList#(V2), isNatIList#(active(X)) -> isNatIList#(X)) (active#(isNatList(take(V1, V2))) -> isNatIList#(V2), isNatIList#(mark(X)) -> isNatIList#(X)) (active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL)), cons#(active(X1), X2) -> cons#(X1, X2)) (active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL)), cons#(mark(X1), X2) -> cons#(X1, X2)) (active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL)), cons#(X1, active(X2)) -> cons#(X1, X2)) (active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL)), cons#(X1, mark(X2)) -> cons#(X1, X2)) (mark#(U11(X1, X2)) -> U11#(mark(X1), X2), U11#(active(X1), X2) -> U11#(X1, X2)) (mark#(U11(X1, X2)) -> U11#(mark(X1), X2), U11#(mark(X1), X2) -> U11#(X1, X2)) (mark#(U11(X1, X2)) -> U11#(mark(X1), X2), U11#(X1, active(X2)) -> U11#(X1, X2)) (mark#(U11(X1, X2)) -> U11#(mark(X1), X2), U11#(X1, mark(X2)) -> U11#(X1, X2)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(V1, V2))) -> isNat#(V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(V)) -> isNatList#(V)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(V1, V2))) -> isNatIList#(V2)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(V1, V2))) -> isNat#(V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(nil())) -> mark#(tt())) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(V1, V2))) -> isNatList#(V2)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(V1, V2))) -> isNat#(V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(length(V1))) -> isNatList#(V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(s(V1))) -> isNat#(V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(0())) -> mark#(tt())) (mark#(s(X)) -> active#(s(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(s(X)) -> active#(s(mark(X))), active#(U31(tt(), IL, M, N)) -> take#(M, IL)) (mark#(s(X)) -> active#(s(mark(X))), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, 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#(M)) (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))) -> and#(isNatIList(IL), and(isNat(M), isNat(N)))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(s(X)) -> active#(s(mark(X))), active#(take(0(), IL)) -> U21#(isNatIList(IL))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(U21(tt())) -> mark#(nil())) (mark#(s(X)) -> active#(s(mark(X))), active#(U11(tt(), L)) -> length#(L)) (mark#(s(X)) -> active#(s(mark(X))), active#(U11(tt(), L)) -> s#(length(L))) (mark#(s(X)) -> active#(s(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(s(X)) -> active#(s(mark(X))), active#(length(nil())) -> mark#(0())) (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))) -> and#(isNatList(L), isNat(N))) (mark#(s(X)) -> active#(s(mark(X))), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L)) (mark#(s(X)) -> active#(s(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatIList(cons(V1, V2))) -> isNat#(V1)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatIList(V)) -> isNatList#(V)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatList(take(V1, V2))) -> isNatIList#(V2)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatList(take(V1, V2))) -> isNat#(V1)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatList(nil())) -> mark#(tt())) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatList(cons(V1, V2))) -> isNatList#(V2)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatList(cons(V1, V2))) -> isNat#(V1)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNat(length(V1))) -> isNatList#(V1)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNat(s(V1))) -> isNat#(V1)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNat(0())) -> mark#(tt())) (mark#(U21(X)) -> active#(U21(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(U31(tt(), IL, M, N)) -> take#(M, IL)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N)))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(take(0(), IL)) -> U21#(isNatIList(IL))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL)))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(U21(tt())) -> mark#(nil())) (mark#(U21(X)) -> active#(U21(mark(X))), active#(U11(tt(), L)) -> length#(L)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(U11(tt(), L)) -> s#(length(L))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(length(nil())) -> mark#(0())) (mark#(U21(X)) -> active#(U21(mark(X))), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(length(cons(N, L))) -> isNat#(N)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X2)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(take(X1, X2)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(U21(X)) -> U21#(mark(X))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(U21(X)) -> mark#(X)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(length(X)) -> length#(mark(X))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(length(X)) -> mark#(X)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(s(X)) -> s#(mark(X))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(s(X)) -> mark#(X)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U21(X)) -> U21#(mark(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U21(X)) -> mark#(X)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(nil()) -> active#(nil())) (mark#(U11(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(length(X)) -> length#(mark(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(U11(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(U11(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U21(X)) -> U21#(mark(X))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U21(X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(nil()) -> active#(nil())) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(length(X)) -> length#(mark(X))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)) (cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2)) (cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2)) (cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, mark(X2)) -> cons#(X1, X2)) (cons#(mark(X1), X2) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)) (cons#(mark(X1), X2) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2)) (cons#(mark(X1), X2) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2)) (cons#(mark(X1), X2) -> cons#(X1, X2), cons#(X1, mark(X2)) -> cons#(X1, X2)) (U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(active(X1), X2) -> U11#(X1, X2)) (U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2)) (U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2)) (U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, mark(X2)) -> U11#(X1, X2)) (U11#(mark(X1), X2) -> U11#(X1, X2), U11#(active(X1), X2) -> U11#(X1, X2)) (U11#(mark(X1), X2) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2)) (U11#(mark(X1), X2) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2)) (U11#(mark(X1), X2) -> U11#(X1, X2), U11#(X1, mark(X2)) -> U11#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(active(X1), X2) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (take#(mark(X1), X2) -> take#(X1, X2), take#(active(X1), X2) -> take#(X1, X2)) (take#(mark(X1), X2) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)) (take#(mark(X1), X2) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2)) (take#(mark(X1), X2) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (and#(X1, mark(X2)) -> and#(X1, X2), and#(active(X1), 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#(X1, active(X2)) -> and#(X1, X2)) (and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, mark(X2)) -> and#(X1, X2)) (and#(mark(X1), X2) -> and#(X1, X2), and#(active(X1), 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#(X1, active(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), 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#(mark(X1), X2) -> and#(X1, X2)) (and#(active(X1), X2) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)) (and#(X1, active(X2)) -> and#(X1, X2), and#(X1, mark(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#(mark(X1), X2) -> and#(X1, X2)) (and#(X1, active(X2)) -> and#(X1, X2), and#(active(X1), X2) -> and#(X1, X2)) (take#(active(X1), X2) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (take#(active(X1), X2) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2)) (take#(active(X1), X2) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)) (take#(active(X1), X2) -> take#(X1, X2), take#(active(X1), X2) -> take#(X1, X2)) (take#(X1, active(X2)) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (take#(X1, active(X2)) -> take#(X1, X2), take#(X1, active(X2)) -> take#(X1, X2)) (take#(X1, active(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)) (take#(X1, active(X2)) -> take#(X1, X2), take#(active(X1), X2) -> take#(X1, X2)) (U11#(active(X1), X2) -> U11#(X1, X2), U11#(X1, mark(X2)) -> U11#(X1, X2)) (U11#(active(X1), X2) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2)) (U11#(active(X1), X2) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2)) (U11#(active(X1), X2) -> U11#(X1, X2), U11#(active(X1), X2) -> U11#(X1, X2)) (U11#(X1, active(X2)) -> U11#(X1, X2), U11#(X1, mark(X2)) -> U11#(X1, X2)) (U11#(X1, active(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2)) (U11#(X1, active(X2)) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2)) (U11#(X1, active(X2)) -> U11#(X1, X2), U11#(active(X1), X2) -> U11#(X1, X2)) (cons#(active(X1), X2) -> cons#(X1, X2), cons#(X1, mark(X2)) -> cons#(X1, X2)) (cons#(active(X1), X2) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2)) (cons#(active(X1), X2) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2)) (cons#(active(X1), X2) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)) (cons#(X1, active(X2)) -> cons#(X1, X2), cons#(X1, mark(X2)) -> cons#(X1, X2)) (cons#(X1, active(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2)) (cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2)) (cons#(X1, active(X2)) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (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#(0()) -> active#(0())) (mark#(and(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (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#(s(X)) -> s#(mark(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> length#(mark(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(and(X1, X2)) -> mark#(X1), mark#(nil()) -> active#(nil())) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X)) -> U21#(mark(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (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#(take(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (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#(0()) -> active#(0())) (mark#(take(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(take(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(take(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(take(X1, X2)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(take(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(take(X1, X2)) -> mark#(X1), mark#(length(X)) -> length#(mark(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(take(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (mark#(take(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(take(X1, X2)) -> mark#(X1), mark#(nil()) -> active#(nil())) (mark#(take(X1, X2)) -> mark#(X1), mark#(U21(X)) -> mark#(X)) (mark#(take(X1, X2)) -> mark#(X1), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(take(X1, X2)) -> mark#(X1), mark#(U21(X)) -> U21#(mark(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> 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)) -> take#(mark(X1), mark(X2))) (mark#(take(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(take(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (mark#(take(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(take(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(take(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(take(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (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#(U11(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(nil()) -> active#(nil())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U21(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U21(X)) -> U21#(mark(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> 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#(U31(X1, X2, X3, X4)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> active#(s(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> s#(mark(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> length#(mark(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U21(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U21(X)) -> U21#(mark(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> mark#(X2)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L)) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N))) (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(nil())) -> mark#(0())) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> s#(length(L))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> length#(L)) (mark#(length(X)) -> active#(length(mark(X))), active#(U21(tt())) -> mark#(nil())) (mark#(length(X)) -> active#(length(mark(X))), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(0(), IL)) -> U21#(isNatIList(IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N)))) (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))) -> isNat#(M)) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(length(X)) -> active#(length(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL))) (mark#(length(X)) -> active#(length(mark(X))), active#(U31(tt(), IL, M, N)) -> take#(M, IL)) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(0())) -> mark#(tt())) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> isNat#(V1)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> isNatList#(V1)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> isNat#(V1)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> isNatList#(V2)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(nil())) -> mark#(tt())) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> isNat#(V1)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> isNatIList#(V2)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> isNatList#(V)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> isNat#(V1)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(and(X1, X2)) -> and#(mark(X1), X2), and#(X1, mark(X2)) -> and#(X1, X2)) (mark#(and(X1, X2)) -> and#(mark(X1), X2), and#(X1, active(X2)) -> and#(X1, X2)) (mark#(and(X1, X2)) -> and#(mark(X1), X2), and#(mark(X1), X2) -> and#(X1, X2)) (mark#(and(X1, X2)) -> and#(mark(X1), X2), and#(active(X1), X2) -> and#(X1, X2)) (mark#(cons(X1, X2)) -> cons#(mark(X1), X2), cons#(X1, mark(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#(mark(X1), X2) -> cons#(X1, X2)) (mark#(cons(X1, X2)) -> cons#(mark(X1), X2), cons#(active(X1), X2) -> cons#(X1, X2)) (active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2), isNatIList#(mark(X)) -> isNatIList#(X)) (active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2), isNatIList#(active(X)) -> isNatIList#(X)) (active#(isNatList(cons(V1, V2))) -> isNatList#(V2), isNatList#(mark(X)) -> isNatList#(X)) (active#(isNatList(cons(V1, V2))) -> isNatList#(V2), isNatList#(active(X)) -> isNatList#(X)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> isNat#(N)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(nil())) -> mark#(0())) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U11(tt(), L)) -> s#(length(L))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U11(tt(), L)) -> length#(L)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U21(tt())) -> mark#(nil())) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(0(), IL)) -> U21#(isNatIList(IL))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U31(tt(), IL, M, N)) -> take#(M, IL)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(0())) -> mark#(tt())) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(s(V1))) -> isNat#(V1)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(length(V1))) -> isNatList#(V1)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> isNat#(V1)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> isNatList#(V2)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(nil())) -> mark#(tt())) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> isNat#(V1)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> isNatIList#(V2)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(V)) -> isNatList#(V)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> isNat#(V1)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> isNat#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(nil())) -> mark#(0())) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> s#(length(L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> length#(L)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt())) -> mark#(nil())) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(0(), IL)) -> U21#(isNatIList(IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNat#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNat#(M)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> take#(M, IL)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(0())) -> mark#(tt())) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> isNat#(V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> isNatList#(V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> isNat#(V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> isNatList#(V2)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(nil())) -> mark#(tt())) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> isNat#(V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> isNatIList#(V2)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> isNatList#(V)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> isNat#(V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N))) (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(nil())) -> mark#(0())) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(U11(tt(), L)) -> s#(length(L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(U11(tt(), L)) -> length#(L)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(U21(tt())) -> mark#(nil())) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(0(), IL)) -> U21#(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(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N)))) (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))) -> isNat#(M)) (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#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> take#(M, IL)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(0())) -> mark#(tt())) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(s(V1))) -> isNat#(V1)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(length(V1))) -> isNatList#(V1)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> isNat#(V1)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> isNatList#(V2)) (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(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> isNat#(V1)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> isNatIList#(V2)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(V)) -> isNatList#(V)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> isNat#(V1)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(zeros())) -> mark#(tt())) (active#(isNatIList(V)) -> isNatList#(V), isNatList#(mark(X)) -> isNatList#(X)) (active#(isNatIList(V)) -> isNatList#(V), isNatList#(active(X)) -> isNatList#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> s#(mark(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> length#(mark(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> U21#(mark(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(zeros()) -> mark#(cons(0(), zeros())), mark#(cons(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#(isNatIList(zeros())) -> mark#(tt()), mark#(tt()) -> active#(tt())) (active#(isNat(0())) -> mark#(tt()), mark#(tt()) -> active#(tt())) (active#(length(nil())) -> mark#(0()), mark#(0()) -> active#(0())) (active#(isNatList(take(V1, V2))) -> isNat#(V1), isNat#(mark(X)) -> isNat#(X)) (active#(isNatList(take(V1, V2))) -> isNat#(V1), isNat#(active(X)) -> isNat#(X)) (active#(isNat(length(V1))) -> isNatList#(V1), isNatList#(mark(X)) -> isNatList#(X)) (active#(isNat(length(V1))) -> isNatList#(V1), isNatList#(active(X)) -> isNatList#(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)) (isNat#(active(X)) -> isNat#(X), isNat#(mark(X)) -> isNat#(X)) (isNat#(active(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X)) (U21#(active(X)) -> U21#(X), U21#(mark(X)) -> U21#(X)) (U21#(active(X)) -> U21#(X), U21#(active(X)) -> U21#(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)) (active#(and(tt(), X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(and(tt(), X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(0()) -> active#(0())) (active#(and(tt(), X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> s#(mark(X))) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> length#(mark(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(and(tt(), X)) -> mark#(X), mark#(tt()) -> active#(tt())) (active#(and(tt(), X)) -> mark#(X), mark#(nil()) -> active#(nil())) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X)) -> U21#(mark(X))) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> mark#(X2)) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(length(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (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#(0()) -> active#(0())) (mark#(length(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(length(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(length(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (mark#(length(X)) -> mark#(X), mark#(s(X)) -> s#(mark(X))) (mark#(length(X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (mark#(length(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(length(X)) -> mark#(X), mark#(length(X)) -> length#(mark(X))) (mark#(length(X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(length(X)) -> mark#(X), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (mark#(length(X)) -> mark#(X), mark#(tt()) -> active#(tt())) (mark#(length(X)) -> mark#(X), mark#(nil()) -> active#(nil())) (mark#(length(X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (mark#(length(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(length(X)) -> mark#(X), mark#(U21(X)) -> U21#(mark(X))) (mark#(length(X)) -> mark#(X), mark#(take(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(take(X1, X2)) -> mark#(X2)) (mark#(length(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(length(X)) -> mark#(X), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(length(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(length(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(length(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(length(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(length(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(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#(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#(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#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> s#(mark(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> length#(mark(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U21(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U21(X)) -> U21#(mark(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> mark#(X2)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2)), and#(active(X1), X2) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N)), 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#(length(cons(N, L))) -> isNatList#(L), isNatList#(mark(X)) -> isNatList#(X)) (active#(length(cons(N, L))) -> isNatList#(L), isNatList#(active(X)) -> isNatList#(X)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (mark#(take(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (mark#(take(X1, X2)) -> mark#(X2), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(take(X1, X2)) -> mark#(X2), mark#(0()) -> active#(0())) (mark#(take(X1, X2)) -> mark#(X2), mark#(zeros()) -> active#(zeros())) (mark#(take(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(take(X1, X2)) -> mark#(X2), mark#(s(X)) -> active#(s(mark(X)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(s(X)) -> s#(mark(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(length(X)) -> mark#(X)) (mark#(take(X1, X2)) -> mark#(X2), mark#(length(X)) -> active#(length(mark(X)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(length(X)) -> length#(mark(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(take(X1, X2)) -> mark#(X2), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (mark#(take(X1, X2)) -> mark#(X2), mark#(tt()) -> active#(tt())) (mark#(take(X1, X2)) -> mark#(X2), mark#(nil()) -> active#(nil())) (mark#(take(X1, X2)) -> mark#(X2), mark#(U21(X)) -> mark#(X)) (mark#(take(X1, X2)) -> mark#(X2), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(U21(X)) -> U21#(mark(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> mark#(X2)) (mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (mark#(take(X1, X2)) -> mark#(X2), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(take(X1, X2)) -> mark#(X2), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (mark#(take(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(take(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(take(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(take(X1, X2)) -> mark#(X2), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(take(0(), IL)) -> U21#(isNatIList(IL)), U21#(mark(X)) -> U21#(X)) (active#(take(0(), IL)) -> U21#(isNatIList(IL)), U21#(active(X)) -> U21#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N))) (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(nil())) -> mark#(0())) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> s#(length(L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> length#(L)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U21(tt())) -> mark#(nil())) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(0(), IL)) -> U21#(isNatIList(IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N)))) (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))) -> isNat#(M)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> isNatIList#(IL)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U31(tt(), IL, M, N)) -> take#(M, IL)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(0())) -> mark#(tt())) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> isNat#(V1)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> isNatList#(V1)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> isNat#(V1)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> isNatList#(V2)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(nil())) -> mark#(tt())) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> isNat#(V1)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> isNatIList#(V2)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> isNatList#(V)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> isNat#(V1)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> U11#(and(isNatList(L), isNat(N)), L)) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> and#(isNatList(L), isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> isNat#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> isNatList#(L)) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(nil())) -> mark#(0())) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> s#(length(L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> length#(L)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt())) -> mark#(nil())) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(0(), IL)) -> U21#(isNatIList(IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(0(), IL)) -> isNatIList#(IL)) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> U31#(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> and#(isNat(M), isNat(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> and#(isNatIList(IL), and(isNat(M), isNat(N)))) (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))) -> isNatIList#(IL)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), IL, M, N)) -> cons#(N, take(M, IL))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), IL, M, N)) -> take#(M, IL)) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(0())) -> mark#(tt())) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> isNat#(V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> isNatList#(V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> and#(isNat(V1), isNatList(V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> isNat#(V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> isNatList#(V2)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(nil())) -> mark#(tt())) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> isNat#(V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> isNatIList#(V2)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> isNatList#(V)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> and#(isNat(V1), isNatIList(V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> isNat#(V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> isNatIList#(V2)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(zeros())) -> mark#(tt())) (mark#(length(X)) -> length#(mark(X)), length#(mark(X)) -> length#(X)) (mark#(length(X)) -> length#(mark(X)), length#(active(X)) -> length#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> s#(mark(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> length#(mark(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U21(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U21(X)) -> U21#(mark(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(cons(X1, X2)) -> cons#(mark(X1), X2)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> s#(mark(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> length#(mark(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> U11#(mark(X1), X2)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U21(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U21(X)) -> U21#(mark(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> mark#(X2)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> take#(mark(X1), mark(X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U31(X1, X2, X3, X4)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U31(X1, X2, X3, X4)) -> U31#(mark(X1), X2, X3, X4)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatIList(X)) -> active#(isNatIList(X))) } SCCS: Scc: { isNatIList#(mark(X)) -> isNatIList#(X), isNatIList#(active(X)) -> isNatIList#(X)} Scc: { isNatList#(mark(X)) -> isNatList#(X), isNatList#(active(X)) -> isNatList#(X)} Scc: { isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(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: { U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)} 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: { U21#(mark(X)) -> U21#(X), U21#(active(X)) -> U21#(X)} Scc: { U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2), U11#(active(X1), X2) -> U11#(X1, X2)} Scc: { length#(mark(X)) -> length#(X), length#(active(X)) -> length#(X)} Scc: { s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X)} Scc: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2), cons#(mark(X1), X2) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)} Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(zeros()) -> active#(zeros()), 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#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X))), mark#(take(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { isNatIList#(mark(X)) -> isNatIList#(X), isNatIList#(active(X)) -> isNatIList#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} 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(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(isNatIList#) = 0 Strict: {} Qed SCC: Strict: { isNatList#(mark(X)) -> isNatList#(X), isNatList#(active(X)) -> isNatList#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} 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(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(isNatList#) = 0 Strict: {} Qed SCC: Strict: { isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} 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(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(isNat#) = 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(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(and#) = 0 Strict: { and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2)} EDG: {(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#(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#(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))} SCCS: Scc: { and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2)} SCC: Strict: { and#(X1, mark(X2)) -> and#(X1, X2), and#(X1, active(X2)) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} 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(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} 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(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(and#) = 1 Strict: {} Qed SCC: Strict: { U31#(X1, X2, X3, mark(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U31#) = 3 Strict: {U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)} EDG: {(U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4))} SCCS: Scc: {U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)} SCC: Strict: {U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(active(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U31#) = 0 Strict: {U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)} EDG: {(U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4))} SCCS: Scc: {U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)} SCC: Strict: {U31#(X1, X2, X3, active(X4)) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U31#) = 3 Strict: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)} EDG: {(U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4))} SCCS: Scc: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)} SCC: Strict: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(mark(X1), X2, X3, X4) -> U31#(X1, X2, X3, X4)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U31#) = 0 Strict: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)} EDG: {(U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4))} SCCS: Scc: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)} SCC: Strict: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, active(X2), X3, X4) -> U31#(X1, X2, X3, X4)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U31#) = 1 Strict: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)} EDG: {(U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4))} SCCS: Scc: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)} SCC: Strict: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, mark(X2), X3, X4) -> U31#(X1, X2, X3, X4)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U31#) = 1 Strict: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)} EDG: {(U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4)) (U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4))} SCCS: Scc: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)} SCC: Strict: { U31#(X1, X2, mark(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U31#) = 2 Strict: {U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)} EDG: {(U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4), U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4))} SCCS: Scc: {U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)} SCC: Strict: {U31#(X1, X2, active(X3), X4) -> U31#(X1, X2, X3, X4)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U31#) = 2 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(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(take#) = 1 Strict: { take#(X1, mark(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2), take#(active(X1), X2) -> take#(X1, X2)} EDG: {(take#(mark(X1), X2) -> take#(X1, X2), take#(active(X1), X2) -> take#(X1, X2)) (take#(mark(X1), X2) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)) (take#(mark(X1), X2) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (take#(active(X1), X2) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (take#(active(X1), X2) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)) (take#(active(X1), X2) -> take#(X1, X2), take#(active(X1), X2) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(active(X1), X2) -> take#(X1, X2))} SCCS: Scc: { take#(X1, mark(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2), take#(active(X1), X2) -> take#(X1, X2)} SCC: Strict: { take#(X1, mark(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2), take#(active(X1), X2) -> take#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(take#) = 0 Strict: {take#(X1, mark(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)} EDG: {(take#(mark(X1), X2) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)) (take#(mark(X1), X2) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2)) (take#(X1, mark(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2))} SCCS: Scc: {take#(X1, mark(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)} SCC: Strict: {take#(X1, mark(X2)) -> take#(X1, X2), take#(mark(X1), X2) -> take#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(take#) = 0 Strict: {take#(X1, mark(X2)) -> take#(X1, X2)} EDG: {(take#(X1, mark(X2)) -> take#(X1, X2), take#(X1, mark(X2)) -> take#(X1, X2))} SCCS: Scc: {take#(X1, mark(X2)) -> take#(X1, X2)} SCC: Strict: {take#(X1, mark(X2)) -> take#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(take#) = 1 Strict: {} Qed SCC: Strict: { U21#(mark(X)) -> U21#(X), U21#(active(X)) -> U21#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U21#) = 0 Strict: {U21#(active(X)) -> U21#(X)} EDG: {(U21#(active(X)) -> U21#(X), U21#(active(X)) -> U21#(X))} SCCS: Scc: {U21#(active(X)) -> U21#(X)} SCC: Strict: {U21#(active(X)) -> U21#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U21#) = 0 Strict: {} Qed SCC: Strict: { U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2), U11#(active(X1), X2) -> U11#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U11#) = 0 Strict: { U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2)} EDG: {(U11#(X1, active(X2)) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2)) (U11#(X1, active(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2)) (U11#(X1, active(X2)) -> U11#(X1, X2), U11#(X1, mark(X2)) -> U11#(X1, X2)) (U11#(mark(X1), X2) -> U11#(X1, X2), U11#(X1, mark(X2)) -> U11#(X1, X2)) (U11#(mark(X1), X2) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2)) (U11#(mark(X1), X2) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2)) (U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, mark(X2)) -> U11#(X1, X2)) (U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2)) (U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2))} SCCS: Scc: { U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2)} SCC: Strict: { U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2), U11#(mark(X1), X2) -> U11#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U11#) = 0 Strict: { U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2)} EDG: {(U11#(X1, active(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2)) (U11#(X1, active(X2)) -> U11#(X1, X2), U11#(X1, mark(X2)) -> U11#(X1, X2)) (U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, mark(X2)) -> U11#(X1, X2)) (U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2))} SCCS: Scc: { U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2)} SCC: Strict: { U11#(X1, mark(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U11#) = 1 Strict: {U11#(X1, active(X2)) -> U11#(X1, X2)} EDG: {(U11#(X1, active(X2)) -> U11#(X1, X2), U11#(X1, active(X2)) -> U11#(X1, X2))} SCCS: Scc: {U11#(X1, active(X2)) -> U11#(X1, X2)} SCC: Strict: {U11#(X1, active(X2)) -> U11#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(U11#) = 1 Strict: {} Qed SCC: Strict: { length#(mark(X)) -> length#(X), length#(active(X)) -> length#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} 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(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(length#) = 0 Strict: {} Qed SCC: Strict: { s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} 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(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(s#) = 0 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(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(cons#) = 0 Strict: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)} EDG: {(cons#(X1, active(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#(X1, mark(X2)) -> cons#(X1, X2)) (cons#(active(X1), X2) -> cons#(X1, X2), cons#(X1, mark(X2)) -> cons#(X1, X2)) (cons#(active(X1), X2) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2)) (cons#(active(X1), X2) -> cons#(X1, X2), cons#(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#(active(X1), X2) -> cons#(X1, X2))} SCCS: Scc: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)} SCC: Strict: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2), cons#(active(X1), X2) -> cons#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(cons#) = 0 Strict: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2)} EDG: {(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#(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))} SCCS: Scc: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2)} SCC: Strict: { cons#(X1, mark(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(cons#) = 1 Strict: {cons#(X1, active(X2)) -> cons#(X1, X2)} EDG: {(cons#(X1, active(X2)) -> cons#(X1, X2), cons#(X1, active(X2)) -> cons#(X1, X2))} SCCS: Scc: {cons#(X1, active(X2)) -> cons#(X1, X2)} SCC: Strict: {cons#(X1, active(X2)) -> cons#(X1, X2)} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} SPSC: Simple Projection: pi(cons#) = 1 Strict: {} Qed SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(zeros()) -> active#(zeros()), 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#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X))), mark#(take(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> mark#(X2), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(0(), IL)) -> mark#(U21(isNatIList(IL))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = [], pi(isNatList) = [], pi(isNat) = [], pi(and) = [0,1], pi(U31) = [0,1,2,3], pi(take) = [0,1], pi(U21) = 0, pi(nil) = [], pi(tt) = [], pi(U11) = [0,1], pi(length) = 0, pi(s) = 0, pi(active#) = 0, pi(active) = 0, pi(zeros) = [], pi(0) = [], pi(cons) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U31](x0, x1, x2, x3) = x0 + x1 + x2 + x3 + 1, [and](x0, x1) = x0 + x1, [take](x0, x1) = x0 + x1 + 1, [U11](x0, x1) = x0 + x1, [cons](x0, x1) = x0 + x1, [isNatIList] = 0, [isNatList] = 0, [isNat] = 0, [tt] = 0, [zeros] = 0, [0] = 0 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(zeros()) -> active#(zeros()), 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#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U21(X)) -> mark#(X)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(U11(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(zeros()) -> active#(zeros()), active#(zeros()) -> mark#(cons(0(), zeros()))) (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#(isNat(X)) -> active#(isNat(X))) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(length(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(length(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(length(X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (mark#(length(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(length(X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(length(X)) -> mark#(X), mark#(length(X)) -> 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#(zeros()) -> active#(zeros())) (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)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (active#(and(tt(), X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U21(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> active#(s(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U21(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (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#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U21(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U21(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(s(X)) -> active#(s(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(s(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> active#(s(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U21(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> active#(s(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U21(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U21(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U21(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U21(X)) -> active#(U21(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U21(X)) -> active#(U21(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(s(X)) -> active#(s(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(s(X)) -> active#(s(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(s(X)) -> active#(s(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(s(X)) -> active#(s(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(s(X)) -> active#(s(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U21(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(U21(X)) -> mark#(X), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2))) (mark#(U21(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(U21(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(U21(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U21(X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (mark#(U21(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(U21(X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(U21(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(U21(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(U21(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(U21(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(U21(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (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#(zeros()) -> active#(zeros())) (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)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(cons(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#(zeros()) -> active#(zeros())) (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)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X)) -> active#(U21(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#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (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#(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#(zeros()) -> active#(zeros())) (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)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U21(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U21(X)) -> active#(U21(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) } SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(zeros()) -> active#(zeros()), 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#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> active#(cons(mark(X1), X2)), mark#(zeros()) -> active#(zeros()), 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#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> active#(U21(mark(X))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = [], pi(isNatList) = [], pi(isNat) = [], pi(and) = [], pi(U31) = [], pi(take) = [], pi(U21) = [], pi(nil) = [], pi(tt) = [], pi(U11) = [], pi(length) = [], pi(s) = [], pi(active#) = 0, pi(active) = [], pi(zeros) = [], pi(0) = [], pi(cons) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [U31] = 1, [and] = 1, [take] = 1, [U11] = 1, [cons] = 0, [isNatIList] = 1, [isNatList] = 1, [isNat] = 1, [U21] = 0, [length] = 1, [s] = 0, [zeros] = 1 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros()), mark#(s(X)) -> mark#(X), mark#(length(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(U21(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (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#(isNat(X)) -> active#(isNat(X))) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(length(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(length(X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (mark#(length(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(length(X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(length(X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (mark#(length(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(length(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(length(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (active#(and(tt(), X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U21(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U21(X)) -> mark#(X)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(U11(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(zeros()) -> active#(zeros()), active#(zeros()) -> mark#(cons(0(), zeros()))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U21(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(s(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U21(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U21(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U21(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U21(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U21(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U21(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(zeros()) -> mark#(cons(0(), zeros())), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U21(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (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#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(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#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (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#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> 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#(U11(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U21(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (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#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(length(X)) -> active#(length(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U21(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(U21(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(U21(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(U21(X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (mark#(U21(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(U21(X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(U21(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(U21(X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (mark#(U21(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(U21(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(U21(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(U21(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> 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#(U11(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(U21(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) } SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros()), mark#(s(X)) -> mark#(X), mark#(length(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(U21(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros()), mark#(s(X)) -> mark#(X), mark#(length(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(U21(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = [], pi(isNatList) = [], pi(isNat) = [], pi(and) = [0,1], pi(U31) = [1,3], pi(take) = [1], pi(U21) = [0], pi(nil) = [], pi(tt) = [], pi(U11) = [0,1], pi(length) = 0, pi(s) = 0, pi(active#) = 0, pi(active) = 0, pi(zeros) = [], pi(0) = [], pi(cons) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U31](x0, x1) = x0 + x1 + 1, [and](x0, x1) = x0 + x1, [take](x0) = x0 + 1, [U11](x0, x1) = x0 + x1, [cons](x0, x1) = x0 + x1, [isNatIList] = 0, [isNatList] = 0, [isNat] = 0, [U21](x0) = x0 + 1, [tt] = 0, [zeros] = 0, [0] = 0 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros()), mark#(s(X)) -> mark#(X), mark#(length(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(s(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> 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#(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#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (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)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (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#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(s(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (active#(and(tt(), X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (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#(s(X)) -> mark#(X)) (mark#(length(X)) -> mark#(X), mark#(length(X)) -> mark#(X)) (mark#(length(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(length(X)) -> mark#(X), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(length(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(length(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(length(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(length(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(length(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(length(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(zeros()) -> mark#(cons(0(), zeros())), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(zeros()) -> active#(zeros()), active#(zeros()) -> mark#(cons(0(), zeros()))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(U11(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(length(X)) -> mark#(X)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(U11(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) } SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros()), mark#(s(X)) -> mark#(X), mark#(length(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros()), mark#(s(X)) -> mark#(X), mark#(length(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = [], pi(isNatList) = [], pi(isNat) = [], pi(and) = [0,1], pi(U31) = [1,3], pi(take) = 1, pi(U21) = [], pi(nil) = [], pi(tt) = [], pi(U11) = [0,1], pi(length) = [0], pi(s) = 0, pi(active#) = 0, pi(active) = 0, pi(zeros) = [], pi(0) = [], pi(cons) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U31](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [U11](x0, x1) = x0 + x1 + 1, [cons](x0, x1) = x0 + x1, [isNatIList] = 0, [isNatList] = 0, [isNat] = 0, [length](x0) = x0 + 1, [tt] = 0, [zeros] = 0, [0] = 0 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros()), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (active#(and(tt(), X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> 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#(zeros()) -> active#(zeros()), active#(zeros()) -> mark#(cons(0(), zeros()))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(zeros()) -> mark#(cons(0(), zeros())), mark#(cons(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (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#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(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#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (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#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(s(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(s(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (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#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) } SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros()), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros()), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(zeros()) -> mark#(cons(0(), zeros())), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = [], pi(isNatList) = [], pi(isNat) = [], pi(and) = [0,1], pi(U31) = 3, pi(take) = 1, pi(U21) = [], pi(nil) = [], pi(tt) = [], pi(U11) = [], pi(length) = [], pi(s) = 0, pi(active#) = 0, pi(active) = 0, pi(zeros) = [], pi(0) = [], pi(cons) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [U11] = 0, [isNatIList] = 0, [isNatList] = 0, [isNat] = 0, [length] = 0, [tt] = 0, [zeros] = 1, [0] = 0 Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros()), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(cons(X1, X2)) -> mark#(X1)) (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#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(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#(zeros()) -> active#(zeros())) (mark#(and(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (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#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (mark#(s(X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(cons(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(zeros()) -> active#(zeros())) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(cons(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(zeros()) -> active#(zeros())) (mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(length(X)) -> active#(length(mark(X)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(cons(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(cons(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (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#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(length(X)) -> active#(length(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(s(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(cons(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) } SCCS: Scc: { mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(cons(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = [], pi(isNatList) = [], pi(isNat) = [], pi(and) = [0,1], pi(U31) = [3], pi(take) = 1, pi(U21) = [], pi(nil) = [], pi(tt) = [], pi(U11) = [], pi(length) = [], pi(s) = 0, pi(active#) = 0, pi(active) = 0, pi(zeros) = [], pi(0) = [], pi(cons) = [0], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U31](x0) = x0 + 1, [and](x0, x1) = x0 + x1, [U11] = 0, [cons](x0) = x0 + 1, [isNatIList] = 0, [isNatList] = 0, [isNat] = 0, [length] = 0, [tt] = 0 Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(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#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(s(X)) -> mark#(X)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(length(X)) -> active#(length(mark(X)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(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#(U11(X1, X2)) -> active#(U11(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#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N))) (mark#(length(X)) -> active#(length(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) } SCCS: Scc: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(take(s(M), cons(N, IL))) -> mark#(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = [], pi(isNatList) = [], pi(isNat) = [], pi(and) = [0,1], pi(U31) = [], pi(take) = [], pi(U21) = [], pi(nil) = [], pi(tt) = [], pi(U11) = [], pi(length) = [], pi(s) = 0, pi(active#) = 0, pi(active) = 0, pi(zeros) = [], pi(0) = [], pi(cons) = [], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U31] = 0, [and](x0, x1) = x0 + x1, [take] = 1, [U11] = 0, [cons] = 0, [isNatIList] = 0, [isNatList] = 0, [isNat] = 0, [length] = 0, [tt] = 0 Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (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#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(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#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(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)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(s(X)) -> mark#(X)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatIList(X)) -> active#(isNatIList(X))) } SCCS: Scc: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(U31(tt(), IL, M, N)) -> mark#(cons(N, take(M, IL))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = [], pi(isNatList) = [], pi(isNat) = [], pi(and) = [0,1], pi(U31) = [], pi(take) = [], pi(U21) = [], pi(nil) = [], pi(tt) = [], pi(U11) = [], pi(length) = [], pi(s) = 0, pi(active#) = 0, pi(active) = 0, pi(zeros) = [], pi(0) = [], pi(cons) = [], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U31] = 1, [and](x0, x1) = x0 + x1, [take] = 1, [U11] = 0, [cons] = 0, [isNatIList] = 0, [isNatList] = 0, [isNat] = 0, [length] = 0, [tt] = 0 Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(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#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(and(X1, X2)) -> mark#(X1), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(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)) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(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#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) } SCCS: Scc: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(take(X1, X2)) -> active#(take(mark(X1), mark(X2))), mark#(U31(X1, X2, X3, X4)) -> active#(U31(mark(X1), X2, X3, X4)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = [], pi(isNatList) = [], pi(isNat) = [], pi(and) = [], pi(U31) = [], pi(take) = [], pi(U21) = [], pi(nil) = [], pi(tt) = [], pi(U11) = [], pi(length) = [], pi(s) = [], pi(active#) = 0, pi(active) = [], pi(zeros) = [], pi(0) = [], pi(cons) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [U31] = 0, [and] = 1, [take] = 0, [U11] = 1, [isNatIList] = 1, [isNatList] = 1, [isNat] = 1, [length] = 1 Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (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#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(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#(U11(X1, X2)) -> active#(U11(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)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (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#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatIList(X)) -> active#(isNatIList(X))) } SCCS: Scc: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatList(take(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = 0, pi(isNatList) = 0, pi(isNat) = 0, pi(and) = [0,1], pi(U31) = [1,2,3], pi(take) = [0,1], pi(U21) = [], pi(nil) = [], pi(tt) = [], pi(U11) = 1, pi(length) = 0, pi(s) = 0, pi(active#) = 0, pi(active) = 0, pi(zeros) = [], pi(0) = [], pi(cons) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [take](x0, x1) = x0 + x1 + 1, [cons](x0, x1) = x0 + x1, [tt] = 0 Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (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#(U11(X1, X2)) -> active#(U11(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)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (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#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(V)) -> mark#(isNatList(V))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(V)) -> mark#(isNatList(V)), mark#(isNatIList(X)) -> active#(isNatIList(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#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) } SCCS: Scc: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatIList(V)) -> mark#(isNatList(V)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = [0], pi(isNatList) = 0, pi(isNat) = 0, pi(and) = [0,1], pi(U31) = [1,2,3], pi(take) = [0,1], pi(U21) = [], pi(nil) = [], pi(tt) = [], pi(U11) = 1, pi(length) = 0, pi(s) = 0, pi(active#) = 0, pi(active) = 0, pi(zeros) = [], pi(0) = [], pi(cons) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [cons](x0, x1) = x0 + x1, [isNatIList](x0) = x0 + 1, [tt] = 0 Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: { (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(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#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (mark#(s(X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(length(V1))) -> mark#(isNatList(V1)), mark#(isNatIList(X)) -> active#(isNatIList(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#(U11(X1, X2)) -> active#(U11(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)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (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#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(length(V1))) -> mark#(isNatList(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) } SCCS: Scc: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNat(length(V1))) -> mark#(isNatList(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} POLY: Argument Filtering: pi(isNatIList) = 0, pi(isNatList) = 0, pi(isNat) = 0, pi(and) = [0,1], pi(U31) = [1,2,3], pi(take) = [0,1], pi(U21) = [], pi(nil) = [], pi(tt) = [], pi(U11) = [1], pi(length) = [0], pi(s) = 0, pi(active#) = 0, pi(active) = 0, pi(zeros) = [], pi(0) = [], pi(cons) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [U11](x0) = x0 + 1, [cons](x0, x1) = x0 + x1, [length](x0) = x0 + 1, [tt] = 0 Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} EDG: {(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#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2)) -> active#(U11(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#(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#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNat(s(V1))) -> mark#(isNat(V1)), mark#(s(X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatList(X)) -> active#(isNatList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(isNat(X)) -> active#(isNat(X))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(and(X1, X2)) -> mark#(X1)) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(length(X)) -> active#(length(mark(X)))) (active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), mark#(s(X)) -> mark#(X)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(length(X)) -> active#(length(mark(X)))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(and(tt(), X)) -> mark#(X), mark#(isNatIList(X)) -> active#(isNatIList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(length(X)) -> active#(length(mark(X)))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatList(X)) -> active#(isNatList(X))) (active#(U11(tt(), L)) -> mark#(s(length(L))), mark#(isNatIList(X)) -> active#(isNatIList(X))) (mark#(length(X)) -> active#(length(mark(X))), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L))) (mark#(length(X)) -> active#(length(mark(X))), active#(U11(tt(), L)) -> mark#(s(length(L)))) (mark#(length(X)) -> active#(length(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(length(X)) -> active#(length(mark(X))), active#(isNat(s(V1))) -> mark#(isNat(V1))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2)))) (mark#(length(X)) -> active#(length(mark(X))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2))))} SCCS: Scc: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} SCC: Strict: { mark#(s(X)) -> mark#(X), mark#(length(X)) -> active#(length(mark(X))), mark#(U11(X1, X2)) -> active#(U11(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(isNatList(X)) -> active#(isNatList(X)), mark#(isNatIList(X)) -> active#(isNatIList(X)), active#(length(cons(N, L))) -> mark#(U11(and(isNatList(L), isNat(N)), L)), active#(U11(tt(), L)) -> mark#(s(length(L))), active#(and(tt(), X)) -> mark#(X), active#(isNat(s(V1))) -> mark#(isNat(V1)), active#(isNatList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatList(V2))), active#(isNatIList(cons(V1, V2))) -> mark#(and(isNat(V1), isNatIList(V2)))} Weak: { mark(cons(X1, X2)) -> active(cons(mark(X1), X2)), mark(0()) -> active(0()), mark(zeros()) -> active(zeros()), mark(s(X)) -> active(s(mark(X))), mark(length(X)) -> active(length(mark(X))), mark(U11(X1, X2)) -> active(U11(mark(X1), X2)), mark(tt()) -> active(tt()), mark(nil()) -> active(nil()), mark(U21(X)) -> active(U21(mark(X))), mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))), mark(U31(X1, X2, X3, X4)) -> active(U31(mark(X1), X2, X3, X4)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(isNatList(X)) -> active(isNatList(X)), mark(isNatIList(X)) -> active(isNatIList(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), active(zeros()) -> mark(cons(0(), zeros())), active(length(cons(N, L))) -> mark(U11(and(isNatList(L), isNat(N)), L)), active(length(nil())) -> mark(0()), active(U11(tt(), L)) -> mark(s(length(L))), active(U21(tt())) -> mark(nil()), active(take(0(), IL)) -> mark(U21(isNatIList(IL))), active(take(s(M), cons(N, IL))) -> mark(U31(and(isNatIList(IL), and(isNat(M), isNat(N))), IL, M, N)), active(U31(tt(), IL, M, N)) -> mark(cons(N, take(M, IL))), active(and(tt(), X)) -> mark(X), active(isNat(0())) -> mark(tt()), active(isNat(s(V1))) -> mark(isNat(V1)), active(isNat(length(V1))) -> mark(isNatList(V1)), active(isNatList(cons(V1, V2))) -> mark(and(isNat(V1), isNatList(V2))), active(isNatList(nil())) -> mark(tt()), active(isNatList(take(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(V)) -> mark(isNatList(V)), active(isNatIList(cons(V1, V2))) -> mark(and(isNat(V1), isNatIList(V2))), active(isNatIList(zeros())) -> mark(tt()), s(mark(X)) -> s(X), s(active(X)) -> s(X), length(mark(X)) -> length(X), length(active(X)) -> length(X), U11(X1, mark(X2)) -> U11(X1, X2), U11(X1, active(X2)) -> U11(X1, X2), U11(mark(X1), X2) -> U11(X1, X2), U11(active(X1), X2) -> U11(X1, X2), U21(mark(X)) -> U21(X), U21(active(X)) -> U21(X), 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), U31(X1, X2, X3, mark(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, X3, active(X4)) -> U31(X1, X2, X3, X4), U31(X1, X2, mark(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, X2, active(X3), X4) -> U31(X1, X2, X3, X4), U31(X1, mark(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(X1, active(X2), X3, X4) -> U31(X1, X2, X3, X4), U31(mark(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), U31(active(X1), X2, X3, X4) -> U31(X1, X2, X3, X4), 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), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), isNatList(mark(X)) -> isNatList(X), isNatList(active(X)) -> isNatList(X), isNatIList(mark(X)) -> isNatIList(X), isNatIList(active(X)) -> isNatIList(X)} Fail