YES TRS: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} DP: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> U12#(mark(X1), X2), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3), mark#(tt()) -> active#(tt()), mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> active#(U13(mark(X))), mark#(U13(X)) -> U13#(mark(X)), mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> active#(U22(mark(X))), mark#(U22(X)) -> U22#(mark(X)), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U21(X1, X2)) -> U21#(mark(X1), X2), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(U31(X1, X2)) -> U31#(mark(X1), X2), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(s(X)) -> s#(mark(X)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2)), mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(and(X1, X2)) -> and#(mark(X1), X2), mark#(0()) -> active#(0()), mark#(isNatKind(X)) -> active#(isNatKind(X)), U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2), U12#(active(X1), X2) -> U12#(X1, X2), isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U12(tt(), V2)) -> isNat#(V2), active#(U12(tt(), V2)) -> U13#(isNat(V2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1), active#(isNat(s(V1))) -> isNatKind#(V1), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), active#(isNat(plus(V1, V2))) -> isNatKind#(V1), active#(isNat(plus(V1, V2))) -> isNatKind#(V2), active#(isNat(0())) -> mark#(tt()), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2), active#(U11(tt(), V1, V2)) -> isNat#(V1), active#(U13(tt())) -> mark#(tt()), active#(U22(tt())) -> mark#(tt()), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U21(tt(), V1)) -> isNat#(V1), active#(U21(tt(), V1)) -> U22#(isNat(V1)), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(plus(N, s(M))) -> isNat#(N), active#(plus(N, s(M))) -> isNat#(M), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N)), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M)), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), active#(plus(N, s(M))) -> isNatKind#(N), active#(plus(N, s(M))) -> isNatKind#(M), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), active#(plus(N, 0())) -> isNat#(N), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N)), active#(plus(N, 0())) -> isNatKind#(N), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(U41(tt(), M, N)) -> s#(plus(N, M)), active#(U41(tt(), M, N)) -> plus#(N, M), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(s(V1))) -> isNatKind#(V1), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2), active#(isNatKind(0())) -> mark#(tt()), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(active(X1), X2, X3) -> U11#(X1, X2, X3), U13#(mark(X)) -> U13#(X), U13#(active(X)) -> U13#(X), U22#(mark(X)) -> U22#(X), U22#(active(X)) -> U22#(X), U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2), U21#(active(X1), X2) -> U21#(X1, X2), U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(X1, active(X2)) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2), s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X), plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2), plus#(active(X1), X2) -> plus#(X1, X2), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), 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), isNatKind#(mark(X)) -> isNatKind#(X), isNatKind#(active(X)) -> isNatKind#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), and#(active(X1), X2) -> and#(X1, X2)) (active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M)), and#(active(X1), X2) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), and#(active(X1), X2) -> and#(X1, X2)) (active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), and#(X1, mark(X2)) -> and#(X1, X2)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(0())) -> mark#(tt())) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, 0())) -> isNat#(N)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> isNat#(M)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> isNat#(N)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U22(tt())) -> mark#(tt())) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U13(tt())) -> mark#(tt())) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(0())) -> mark#(tt())) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(0())) -> mark#(tt())) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(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#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, 0())) -> isNat#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> isNat#(M)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> isNat#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U22(tt())) -> mark#(tt())) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U13(tt())) -> mark#(tt())) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (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(plus(V1, V2))) -> isNatKind#(V2)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(s(X)) -> s#(mark(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(s(X)) -> active#(s(mark(X)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> U22#(mark(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> U13#(mark(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> s#(plus(N, M)), s#(active(X)) -> s#(X)) (active#(U41(tt(), M, N)) -> s#(plus(N, M)), s#(mark(X)) -> s#(X)) (active#(plus(N, s(M))) -> isNat#(N), isNat#(active(X)) -> isNat#(X)) (active#(plus(N, s(M))) -> isNat#(N), isNat#(mark(X)) -> isNat#(X)) (active#(plus(N, 0())) -> isNat#(N), isNat#(active(X)) -> isNat#(X)) (active#(plus(N, 0())) -> isNat#(N), isNat#(mark(X)) -> isNat#(X)) (active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N), U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3)) (active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2), U11#(active(X1), X2, X3) -> U11#(X1, X2, X3)) (active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (active#(U12(tt(), V2)) -> isNat#(V2), isNat#(active(X)) -> isNat#(X)) (active#(U12(tt(), V2)) -> isNat#(V2), isNat#(mark(X)) -> isNat#(X)) (active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2), isNatKind#(active(X)) -> isNatKind#(X)) (active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2), isNatKind#(mark(X)) -> isNatKind#(X)) (mark#(U12(X1, X2)) -> U12#(mark(X1), X2), U12#(active(X1), X2) -> U12#(X1, X2)) (mark#(U12(X1, X2)) -> U12#(mark(X1), X2), U12#(mark(X1), X2) -> U12#(X1, X2)) (mark#(U12(X1, X2)) -> U12#(mark(X1), X2), U12#(X1, active(X2)) -> U12#(X1, X2)) (mark#(U12(X1, X2)) -> U12#(mark(X1), X2), U12#(X1, mark(X2)) -> U12#(X1, X2)) (mark#(U31(X1, X2)) -> U31#(mark(X1), X2), U31#(active(X1), X2) -> U31#(X1, X2)) (mark#(U31(X1, X2)) -> U31#(mark(X1), X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (mark#(U31(X1, X2)) -> U31#(mark(X1), X2), U31#(X1, active(X2)) -> U31#(X1, X2)) (mark#(U31(X1, X2)) -> U31#(mark(X1), X2), U31#(X1, mark(X2)) -> U31#(X1, X2)) (U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(active(X1), X2) -> U12#(X1, X2)) (U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2)) (U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2)) (U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, mark(X2)) -> U12#(X1, X2)) (U12#(mark(X1), X2) -> U12#(X1, X2), U12#(active(X1), X2) -> U12#(X1, X2)) (U12#(mark(X1), X2) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2)) (U12#(mark(X1), X2) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2)) (U12#(mark(X1), X2) -> U12#(X1, X2), U12#(X1, mark(X2)) -> U12#(X1, X2)) (active#(isNat(s(V1))) -> isNatKind#(V1), isNatKind#(active(X)) -> isNatKind#(X)) (active#(isNat(s(V1))) -> isNatKind#(V1), isNatKind#(mark(X)) -> isNatKind#(X)) (active#(U11(tt(), V1, V2)) -> isNat#(V1), isNat#(active(X)) -> isNat#(X)) (active#(U11(tt(), V1, V2)) -> isNat#(V1), isNat#(mark(X)) -> isNat#(X)) (active#(isNatKind(s(V1))) -> isNatKind#(V1), isNatKind#(active(X)) -> isNatKind#(X)) (active#(isNatKind(s(V1))) -> isNatKind#(V1), isNatKind#(mark(X)) -> isNatKind#(X)) (U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(active(X1), X2) -> U21#(X1, X2)) (U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2)) (U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2)) (U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, mark(X2)) -> U21#(X1, X2)) (U21#(mark(X1), X2) -> U21#(X1, X2), U21#(active(X1), X2) -> U21#(X1, X2)) (U21#(mark(X1), X2) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2)) (U21#(mark(X1), X2) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2)) (U21#(mark(X1), X2) -> U21#(X1, X2), U21#(X1, mark(X2)) -> U21#(X1, X2)) (U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)) (U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(X1, active(X2)) -> U31#(X1, X2)) (U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(X1, mark(X2)) -> U31#(X1, X2)) (U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)) (U31#(mark(X1), X2) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (U31#(mark(X1), X2) -> U31#(X1, X2), U31#(X1, active(X2)) -> U31#(X1, X2)) (U31#(mark(X1), X2) -> U31#(X1, X2), U31#(X1, mark(X2)) -> U31#(X1, X2)) (plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(active(X1), X2) -> plus#(X1, X2)) (plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)) (plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2)) (plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, mark(X2)) -> plus#(X1, X2)) (plus#(mark(X1), X2) -> plus#(X1, X2), plus#(active(X1), X2) -> plus#(X1, X2)) (plus#(mark(X1), X2) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)) (plus#(mark(X1), X2) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2)) (plus#(mark(X1), X2) -> plus#(X1, X2), plus#(X1, mark(X2)) -> plus#(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)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> U22#(mark(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> active#(U22(mark(X)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> U13#(mark(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> active#(U13(mark(X)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> U22#(mark(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> active#(U22(mark(X)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> U13#(mark(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> active#(U13(mark(X)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U22(X)) -> U22#(mark(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U22(X)) -> active#(U22(mark(X)))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U13(X)) -> U13#(mark(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U13(X)) -> active#(U13(mark(X)))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (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#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> U22#(mark(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> active#(U22(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> U13#(mark(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> active#(U13(mark(X)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(s(X)) -> s#(mark(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> U22#(mark(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> U13#(mark(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> U13#(mark(X)), U13#(active(X)) -> U13#(X)) (mark#(U13(X)) -> U13#(mark(X)), U13#(mark(X)) -> U13#(X)) (mark#(s(X)) -> s#(mark(X)), s#(active(X)) -> s#(X)) (mark#(s(X)) -> s#(mark(X)), s#(mark(X)) -> s#(X)) (active#(U12(tt(), V2)) -> U13#(isNat(V2)), U13#(active(X)) -> U13#(X)) (active#(U12(tt(), V2)) -> U13#(isNat(V2)), U13#(mark(X)) -> U13#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(s(X)) -> s#(mark(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(s(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> U22#(mark(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> U13#(mark(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U13(tt())) -> mark#(tt()), mark#(tt()) -> active#(tt())) (active#(isNatKind(0())) -> mark#(tt()), mark#(tt()) -> active#(tt())) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(0()) -> active#(0())) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (mark#(U22(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(s(X)) -> s#(mark(X))) (mark#(U22(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U22(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> U22#(mark(X))) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> active#(U22(mark(X)))) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> U13#(mark(X))) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> active#(U13(mark(X)))) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(tt()) -> active#(tt())) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X)) (isNat#(mark(X)) -> isNat#(X), isNat#(mark(X)) -> isNat#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(and(tt(), X)) -> mark#(X), mark#(0()) -> active#(0())) (active#(and(tt(), X)) -> mark#(X), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (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#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(and(tt(), X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> s#(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#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> U22#(mark(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> U13#(mark(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(tt()) -> active#(tt())) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (U13#(active(X)) -> U13#(X), U13#(active(X)) -> U13#(X)) (U13#(active(X)) -> U13#(X), U13#(mark(X)) -> U13#(X)) (U22#(active(X)) -> U22#(X), U22#(active(X)) -> U22#(X)) (U22#(active(X)) -> U22#(X), U22#(mark(X)) -> U22#(X)) (s#(active(X)) -> s#(X), s#(active(X)) -> s#(X)) (s#(active(X)) -> s#(X), s#(mark(X)) -> s#(X)) (isNatKind#(active(X)) -> isNatKind#(X), isNatKind#(active(X)) -> isNatKind#(X)) (isNatKind#(active(X)) -> isNatKind#(X), isNatKind#(mark(X)) -> isNatKind#(X)) (active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2), U12#(active(X1), X2) -> U12#(X1, X2)) (active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2), U12#(mark(X1), X2) -> U12#(X1, X2)) (active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2), U12#(X1, active(X2)) -> U12#(X1, X2)) (active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2), U12#(X1, mark(X2)) -> U12#(X1, X2)) (mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3), U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3)) (mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(active(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(active(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(active(X1), X2, X3) -> U11#(X1, X2, X3), U11#(active(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(active(X1), X2, X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(active(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(active(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(active(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(active(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3)) (U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3)) (U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNatKind(0())) -> mark#(tt())) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, 0())) -> isNat#(N)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, s(M))) -> isNat#(M)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, s(M))) -> isNat#(N)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U31(tt(), N)) -> mark#(N)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U22(tt())) -> mark#(tt())) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U13(tt())) -> mark#(tt())) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNat(0())) -> mark#(tt())) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(U22(X)) -> active#(U22(mark(X))), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(s(X)) -> s#(mark(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(s(X)) -> active#(s(mark(X)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(s(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> U22#(mark(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> U13#(mark(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(s(X)) -> s#(mark(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(s(X)) -> active#(s(mark(X)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(s(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U22(X)) -> U22#(mark(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U22(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U13(X)) -> U13#(mark(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U13(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(0())) -> mark#(tt())) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, 0())) -> isNat#(N)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> isNat#(M)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> isNat#(N)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U22(tt())) -> mark#(tt())) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U13(tt())) -> mark#(tt())) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(0())) -> mark#(tt())) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(s(X)) -> s#(mark(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(s(X)) -> active#(s(mark(X)))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(s(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U22(X)) -> U22#(mark(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U22(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U13(X)) -> U13#(mark(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U13(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> isNatKind#(M), isNatKind#(active(X)) -> isNatKind#(X)) (active#(plus(N, s(M))) -> isNatKind#(M), isNatKind#(mark(X)) -> isNatKind#(X)) (active#(U41(tt(), M, N)) -> plus#(N, M), plus#(X1, mark(X2)) -> plus#(X1, X2)) (active#(U41(tt(), M, N)) -> plus#(N, M), plus#(X1, active(X2)) -> plus#(X1, X2)) (active#(U41(tt(), M, N)) -> plus#(N, M), plus#(mark(X1), X2) -> plus#(X1, X2)) (active#(U41(tt(), M, N)) -> plus#(N, M), plus#(active(X1), X2) -> plus#(X1, X2)) (active#(plus(N, s(M))) -> isNat#(M), isNat#(mark(X)) -> isNat#(X)) (active#(plus(N, s(M))) -> isNat#(M), isNat#(active(X)) -> isNat#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U13(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U13(X)) -> U13#(mark(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U22(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U22(X)) -> U22#(mark(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(s(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(s(X)) -> s#(mark(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(0())) -> mark#(tt())) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U13(tt())) -> mark#(tt())) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U22(tt())) -> mark#(tt())) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> isNat#(N)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> isNat#(M)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, 0())) -> isNat#(N)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(0())) -> mark#(tt())) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> U13#(mark(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> U22#(mark(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(s(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(s(X)) -> active#(s(mark(X)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(s(X)) -> s#(mark(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(s(X)) -> active#(s(mark(X))), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(s(X)) -> active#(s(mark(X))), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(s(X)) -> active#(s(mark(X))), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNat(0())) -> mark#(tt())) (mark#(s(X)) -> active#(s(mark(X))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(s(X)) -> active#(s(mark(X))), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(s(X)) -> active#(s(mark(X))), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(U13(tt())) -> mark#(tt())) (mark#(s(X)) -> active#(s(mark(X))), active#(U22(tt())) -> mark#(tt())) (mark#(s(X)) -> active#(s(mark(X))), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(s(X)) -> active#(s(mark(X))), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(s(X)) -> active#(s(mark(X))), active#(U31(tt(), N)) -> mark#(N)) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, s(M))) -> isNat#(N)) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, s(M))) -> isNat#(M)) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, 0())) -> isNat#(N)) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(s(X)) -> active#(s(mark(X))), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(s(X)) -> active#(s(mark(X))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(s(X)) -> active#(s(mark(X))), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(s(X)) -> active#(s(mark(X))), active#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(s(X)) -> active#(s(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(s(X)) -> active#(s(mark(X))), active#(isNatKind(0())) -> mark#(tt())) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNat(0())) -> mark#(tt())) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U13(tt())) -> mark#(tt())) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U22(tt())) -> mark#(tt())) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U31(tt(), N)) -> mark#(N)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, s(M))) -> isNat#(N)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, s(M))) -> isNat#(M)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, 0())) -> isNat#(N)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(and(tt(), X)) -> mark#(X)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U13(X)) -> active#(U13(mark(X))), active#(isNatKind(0())) -> mark#(tt())) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(active(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(active(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(active(X1), X2, X3) -> U11#(X1, X2, X3)) (mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3), U11#(active(X1), X2, X3) -> U11#(X1, X2, X3)) (active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), and#(X1, active(X2)) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), and#(mark(X1), X2) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), and#(active(X1), X2) -> and#(X1, X2)) (isNatKind#(mark(X)) -> isNatKind#(X), isNatKind#(mark(X)) -> isNatKind#(X)) (isNatKind#(mark(X)) -> isNatKind#(X), isNatKind#(active(X)) -> isNatKind#(X)) (s#(mark(X)) -> s#(X), s#(mark(X)) -> s#(X)) (s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X)) (U22#(mark(X)) -> U22#(X), U22#(mark(X)) -> U22#(X)) (U22#(mark(X)) -> U22#(X), U22#(active(X)) -> U22#(X)) (U13#(mark(X)) -> U13#(X), U13#(mark(X)) -> U13#(X)) (U13#(mark(X)) -> U13#(X), U13#(active(X)) -> U13#(X)) (isNat#(active(X)) -> isNat#(X), isNat#(mark(X)) -> isNat#(X)) (isNat#(active(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X)) (mark#(s(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (mark#(s(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (mark#(s(X)) -> mark#(X), mark#(tt()) -> active#(tt())) (mark#(s(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(U13(X)) -> active#(U13(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(U13(X)) -> U13#(mark(X))) (mark#(s(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(U22(X)) -> active#(U22(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(U22(X)) -> U22#(mark(X))) (mark#(s(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> s#(mark(X))) (mark#(s(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (mark#(s(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(s(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (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#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(s(X)) -> mark#(X), mark#(0()) -> active#(0())) (mark#(s(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (mark#(U13(X)) -> mark#(X), mark#(tt()) -> active#(tt())) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> active#(U13(mark(X)))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> U13#(mark(X))) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> active#(U22(mark(X)))) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> U22#(mark(X))) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (mark#(U13(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U13(X)) -> mark#(X), mark#(s(X)) -> s#(mark(X))) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (mark#(U13(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(U13(X)) -> mark#(X), mark#(0()) -> active#(0())) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U22(tt())) -> mark#(tt()), mark#(tt()) -> active#(tt())) (active#(isNat(0())) -> mark#(tt()), mark#(tt()) -> active#(tt())) (active#(U21(tt(), V1)) -> U22#(isNat(V1)), U22#(mark(X)) -> U22#(X)) (active#(U21(tt(), V1)) -> U22#(isNat(V1)), U22#(active(X)) -> U22#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(0())) -> mark#(tt())) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U13(tt())) -> mark#(tt())) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U22(tt())) -> mark#(tt())) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U31(tt(), N)) -> mark#(N)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> isNat#(N)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> isNat#(M)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, 0())) -> isNat#(N)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(0())) -> mark#(tt())) (mark#(U22(X)) -> U22#(mark(X)), U22#(mark(X)) -> U22#(X)) (mark#(U22(X)) -> U22#(mark(X)), U22#(active(X)) -> U22#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(0())) -> mark#(tt())) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U13(tt())) -> mark#(tt())) (mark#(isNat(X)) -> active#(isNat(X)), active#(U22(tt())) -> mark#(tt())) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), N)) -> mark#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> isNat#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> isNat#(M)) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, 0())) -> isNat#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(0())) -> mark#(tt())) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(0())) -> mark#(tt())) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U13(tt())) -> mark#(tt())) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U22(tt())) -> mark#(tt())) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U31(tt(), N)) -> mark#(N)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> isNat#(N)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> isNat#(M)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, 0())) -> isNat#(N)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(0())) -> mark#(tt())) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> active#(U13(mark(X)))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> U13#(mark(X))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> active#(U22(mark(X)))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> U22#(mark(X))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U13(X)) -> active#(U13(mark(X)))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U13(X)) -> U13#(mark(X))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U22(X)) -> active#(U22(mark(X)))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U22(X)) -> U22#(mark(X))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(U31(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(tt()) -> active#(tt())) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> active#(U13(mark(X)))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> U13#(mark(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> active#(U22(mark(X)))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> U22#(mark(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(s(X)) -> active#(s(mark(X)))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(s(X)) -> s#(mark(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(0()) -> active#(0())) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (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)) (plus#(active(X1), X2) -> plus#(X1, X2), plus#(X1, mark(X2)) -> plus#(X1, X2)) (plus#(active(X1), X2) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2)) (plus#(active(X1), X2) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)) (plus#(active(X1), X2) -> plus#(X1, X2), plus#(active(X1), X2) -> plus#(X1, X2)) (plus#(X1, active(X2)) -> plus#(X1, X2), plus#(X1, mark(X2)) -> plus#(X1, X2)) (plus#(X1, active(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2)) (plus#(X1, active(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)) (plus#(X1, active(X2)) -> plus#(X1, X2), plus#(active(X1), X2) -> plus#(X1, X2)) (U31#(active(X1), X2) -> U31#(X1, X2), U31#(X1, mark(X2)) -> U31#(X1, X2)) (U31#(active(X1), X2) -> U31#(X1, X2), U31#(X1, active(X2)) -> U31#(X1, X2)) (U31#(active(X1), X2) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (U31#(active(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)) (U31#(X1, active(X2)) -> U31#(X1, X2), U31#(X1, mark(X2)) -> U31#(X1, X2)) (U31#(X1, active(X2)) -> U31#(X1, X2), U31#(X1, active(X2)) -> U31#(X1, X2)) (U31#(X1, active(X2)) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (U31#(X1, active(X2)) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)) (U21#(active(X1), X2) -> U21#(X1, X2), U21#(X1, mark(X2)) -> U21#(X1, X2)) (U21#(active(X1), X2) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2)) (U21#(active(X1), X2) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2)) (U21#(active(X1), X2) -> U21#(X1, X2), U21#(active(X1), X2) -> U21#(X1, X2)) (U21#(X1, active(X2)) -> U21#(X1, X2), U21#(X1, mark(X2)) -> U21#(X1, X2)) (U21#(X1, active(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2)) (U21#(X1, active(X2)) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2)) (U21#(X1, active(X2)) -> U21#(X1, X2), U21#(active(X1), X2) -> U21#(X1, X2)) (active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1), isNatKind#(mark(X)) -> isNatKind#(X)) (active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1), isNatKind#(active(X)) -> isNatKind#(X)) (active#(U21(tt(), V1)) -> isNat#(V1), isNat#(mark(X)) -> isNat#(X)) (active#(U21(tt(), V1)) -> isNat#(V1), isNat#(active(X)) -> isNat#(X)) (active#(isNat(plus(V1, V2))) -> isNatKind#(V1), isNatKind#(mark(X)) -> isNatKind#(X)) (active#(isNat(plus(V1, V2))) -> isNatKind#(V1), isNatKind#(active(X)) -> isNatKind#(X)) (U12#(active(X1), X2) -> U12#(X1, X2), U12#(X1, mark(X2)) -> U12#(X1, X2)) (U12#(active(X1), X2) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2)) (U12#(active(X1), X2) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2)) (U12#(active(X1), X2) -> U12#(X1, X2), U12#(active(X1), X2) -> U12#(X1, X2)) (U12#(X1, active(X2)) -> U12#(X1, X2), U12#(X1, mark(X2)) -> U12#(X1, X2)) (U12#(X1, active(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2)) (U12#(X1, active(X2)) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2)) (U12#(X1, active(X2)) -> U12#(X1, X2), U12#(active(X1), X2) -> U12#(X1, X2)) (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#(U21(X1, X2)) -> U21#(mark(X1), X2), U21#(X1, mark(X2)) -> U21#(X1, X2)) (mark#(U21(X1, X2)) -> U21#(mark(X1), X2), U21#(X1, active(X2)) -> U21#(X1, X2)) (mark#(U21(X1, X2)) -> U21#(mark(X1), X2), U21#(mark(X1), X2) -> U21#(X1, X2)) (mark#(U21(X1, X2)) -> U21#(mark(X1), X2), U21#(active(X1), X2) -> U21#(X1, X2)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(tt()) -> active#(tt())) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U13(X)) -> active#(U13(mark(X)))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U13(X)) -> U13#(mark(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U22(X)) -> active#(U22(mark(X)))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U22(X)) -> U22#(mark(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(s(X)) -> active#(s(mark(X)))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(s(X)) -> s#(mark(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(0()) -> active#(0())) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(plus(V1, V2))) -> isNatKind#(V2), isNatKind#(mark(X)) -> isNatKind#(X)) (active#(isNat(plus(V1, V2))) -> isNatKind#(V2), isNatKind#(active(X)) -> isNatKind#(X)) (active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N), U31#(X1, mark(X2)) -> U31#(X1, X2)) (active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N), U31#(X1, active(X2)) -> U31#(X1, X2)) (active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N), U31#(mark(X1), X2) -> U31#(X1, X2)) (active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N), U31#(active(X1), X2) -> U31#(X1, X2)) (active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1), U21#(X1, mark(X2)) -> U21#(X1, X2)) (active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1), U21#(X1, active(X2)) -> U21#(X1, X2)) (active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1), U21#(mark(X1), X2) -> U21#(X1, X2)) (active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1), U21#(active(X1), X2) -> U21#(X1, X2)) (active#(plus(N, 0())) -> isNatKind#(N), isNatKind#(mark(X)) -> isNatKind#(X)) (active#(plus(N, 0())) -> isNatKind#(N), isNatKind#(active(X)) -> isNatKind#(X)) (active#(plus(N, s(M))) -> isNatKind#(N), isNatKind#(mark(X)) -> isNatKind#(X)) (active#(plus(N, s(M))) -> isNatKind#(N), isNatKind#(active(X)) -> isNatKind#(X)) (active#(U31(tt(), N)) -> mark#(N), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(U31(tt(), N)) -> mark#(N), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), N)) -> mark#(N), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U31(tt(), N)) -> mark#(N), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(U31(tt(), N)) -> mark#(N), mark#(tt()) -> active#(tt())) (active#(U31(tt(), N)) -> mark#(N), mark#(U13(X)) -> mark#(X)) (active#(U31(tt(), N)) -> mark#(N), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(U31(tt(), N)) -> mark#(N), mark#(U13(X)) -> U13#(mark(X))) (active#(U31(tt(), N)) -> mark#(N), mark#(U22(X)) -> mark#(X)) (active#(U31(tt(), N)) -> mark#(N), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(U31(tt(), N)) -> mark#(N), mark#(U22(X)) -> U22#(mark(X))) (active#(U31(tt(), N)) -> mark#(N), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(U31(tt(), N)) -> mark#(N), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(U31(tt(), N)) -> mark#(N), mark#(s(X)) -> mark#(X)) (active#(U31(tt(), N)) -> mark#(N), mark#(s(X)) -> active#(s(mark(X)))) (active#(U31(tt(), N)) -> mark#(N), mark#(s(X)) -> s#(mark(X))) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U31(tt(), N)) -> mark#(N), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(U31(tt(), N)) -> mark#(N), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(U31(tt(), N)) -> mark#(N), mark#(0()) -> active#(0())) (active#(U31(tt(), N)) -> mark#(N), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U13(X)) -> mark#(X)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U13(X)) -> U13#(mark(X))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U22(X)) -> mark#(X)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U22(X)) -> U22#(mark(X))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(s(X)) -> mark#(X)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(s(X)) -> active#(s(mark(X)))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(s(X)) -> s#(mark(X))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U12(X1, X2)) -> U12#(mark(X1), X2)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U11(X1, X2, X3)) -> U11#(mark(X1), X2, X3)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U13(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U13(X)) -> active#(U13(mark(X)))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U13(X)) -> U13#(mark(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U22(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U22(X)) -> active#(U22(mark(X)))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U22(X)) -> U22#(mark(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U21(X1, X2)) -> U21#(mark(X1), X2)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U31(X1, X2)) -> U31#(mark(X1), X2)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(s(X)) -> active#(s(mark(X)))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(s(X)) -> s#(mark(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U41(X1, X2, X3)) -> U41#(mark(X1), X2, X3)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(and(X1, X2)) -> and#(mark(X1), X2)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(0())) -> mark#(tt())) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U13(tt())) -> mark#(tt())) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U22(tt())) -> mark#(tt())) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> isNat#(N)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> isNat#(M)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, 0())) -> isNat#(N)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(0())) -> mark#(tt())) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> isNat#(V2)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(s(V1))) -> isNatKind#(V1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(0())) -> mark#(tt())) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U13(tt())) -> mark#(tt())) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U22(tt())) -> mark#(tt())) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> isNat#(V1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> isNat#(N)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> isNat#(M)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> isNatKind#(N)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> isNatKind#(M)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, 0())) -> isNat#(N)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, 0())) -> isNatKind#(N)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U41(tt(), M, N)) -> plus#(N, M)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(0())) -> mark#(tt())) (active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N)), and#(active(X1), X2) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N)), and#(X1, mark(X2)) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N)), and#(X1, active(X2)) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N)), and#(active(X1), X2) -> and#(X1, X2)) (mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2)), plus#(X1, mark(X2)) -> plus#(X1, X2)) (mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2)), plus#(X1, active(X2)) -> plus#(X1, X2)) (mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2)), plus#(mark(X1), X2) -> plus#(X1, X2)) (mark#(plus(X1, X2)) -> plus#(mark(X1), mark(X2)), plus#(active(X1), X2) -> plus#(X1, X2)) } SCCS: Scc: { isNatKind#(mark(X)) -> isNatKind#(X), isNatKind#(active(X)) -> isNatKind#(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: { U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)} Scc: { plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2), plus#(active(X1), X2) -> plus#(X1, X2)} Scc: { s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X)} Scc: { U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(X1, active(X2)) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)} Scc: { U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2), U21#(active(X1), X2) -> U21#(X1, X2)} Scc: { U22#(mark(X)) -> U22#(X), U22#(active(X)) -> U22#(X)} Scc: { U13#(mark(X)) -> U13#(X), U13#(active(X)) -> U13#(X)} Scc: { U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(active(X1), X2, X3) -> U11#(X1, X2, X3)} Scc: { isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X)} Scc: { U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2), U12#(active(X1), X2) -> U12#(X1, X2)} Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> active#(U13(mark(X))), mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> active#(U22(mark(X))), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { isNatKind#(mark(X)) -> isNatKind#(X), isNatKind#(active(X)) -> isNatKind#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(isNatKind#) = 0 Strict: {isNatKind#(active(X)) -> isNatKind#(X)} EDG: {(isNatKind#(active(X)) -> isNatKind#(X), isNatKind#(active(X)) -> isNatKind#(X))} SCCS: Scc: {isNatKind#(active(X)) -> isNatKind#(X)} SCC: Strict: {isNatKind#(active(X)) -> isNatKind#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(isNatKind#) = 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(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(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(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(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(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(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(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(and#) = 1 Strict: {} Qed SCC: Strict: { U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, active(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U41#) = 2 Strict: { U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)} EDG: {(U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(active(X1), X2, X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3))} SCCS: Scc: { U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)} SCC: Strict: { U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(active(X1), X2, X3) -> U41#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U41#) = 0 Strict: { U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)} EDG: {(U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3))} SCCS: Scc: { U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)} SCC: Strict: { U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U41#) = 0 Strict: { U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)} EDG: {(U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, active(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3))} SCCS: Scc: { U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)} SCC: Strict: { U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, active(X2), X3) -> U41#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U41#) = 1 Strict: {U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)} EDG: {(U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)) (U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3))} SCCS: Scc: {U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)} SCC: Strict: {U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, mark(X2), X3) -> U41#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U41#) = 1 Strict: {U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)} EDG: {(U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3), U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3))} SCCS: Scc: {U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)} SCC: Strict: {U41#(X1, X2, mark(X3)) -> U41#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U41#) = 2 Strict: {} Qed SCC: Strict: { plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2), plus#(active(X1), X2) -> plus#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(plus#) = 0 Strict: { plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)} EDG: {(plus#(X1, active(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)) (plus#(X1, active(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2)) (plus#(X1, active(X2)) -> plus#(X1, X2), plus#(X1, mark(X2)) -> plus#(X1, X2)) (plus#(mark(X1), X2) -> plus#(X1, X2), plus#(X1, mark(X2)) -> plus#(X1, X2)) (plus#(mark(X1), X2) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2)) (plus#(mark(X1), X2) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)) (plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, mark(X2)) -> plus#(X1, X2)) (plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2)) (plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2))} SCCS: Scc: { plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)} SCC: Strict: { plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(plus#) = 0 Strict: { plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2)} EDG: {(plus#(X1, active(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2)) (plus#(X1, active(X2)) -> plus#(X1, X2), plus#(X1, mark(X2)) -> plus#(X1, X2)) (plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, mark(X2)) -> plus#(X1, X2)) (plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2))} SCCS: Scc: { plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2)} SCC: Strict: { plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(plus#) = 1 Strict: {plus#(X1, active(X2)) -> plus#(X1, X2)} EDG: {(plus#(X1, active(X2)) -> plus#(X1, X2), plus#(X1, active(X2)) -> plus#(X1, X2))} SCCS: Scc: {plus#(X1, active(X2)) -> plus#(X1, X2)} SCC: Strict: {plus#(X1, active(X2)) -> plus#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(plus#) = 1 Strict: {} Qed SCC: Strict: { s#(mark(X)) -> s#(X), s#(active(X)) -> s#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(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(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(s#) = 0 Strict: {} Qed SCC: Strict: { U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(X1, active(X2)) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U31#) = 1 Strict: { U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)} EDG: {(U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)) (U31#(mark(X1), X2) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (U31#(mark(X1), X2) -> U31#(X1, X2), U31#(X1, mark(X2)) -> U31#(X1, X2)) (U31#(active(X1), X2) -> U31#(X1, X2), U31#(X1, mark(X2)) -> U31#(X1, X2)) (U31#(active(X1), X2) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (U31#(active(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)) (U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(X1, mark(X2)) -> U31#(X1, X2)) (U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2))} SCCS: Scc: { U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)} SCC: Strict: { U31#(X1, mark(X2)) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U31#) = 1 Strict: { U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)} EDG: {(U31#(active(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)) (U31#(active(X1), X2) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (U31#(mark(X1), X2) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2))} SCCS: Scc: { U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)} SCC: Strict: { U31#(mark(X1), X2) -> U31#(X1, X2), U31#(active(X1), X2) -> U31#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U31#) = 0 Strict: {U31#(mark(X1), X2) -> U31#(X1, X2)} EDG: {(U31#(mark(X1), X2) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2))} SCCS: Scc: {U31#(mark(X1), X2) -> U31#(X1, X2)} SCC: Strict: {U31#(mark(X1), X2) -> U31#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U31#) = 0 Strict: {} Qed SCC: Strict: { U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2), U21#(active(X1), X2) -> U21#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U21#) = 0 Strict: { U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2)} EDG: {(U21#(X1, active(X2)) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2)) (U21#(X1, active(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2)) (U21#(X1, active(X2)) -> U21#(X1, X2), U21#(X1, mark(X2)) -> U21#(X1, X2)) (U21#(mark(X1), X2) -> U21#(X1, X2), U21#(X1, mark(X2)) -> U21#(X1, X2)) (U21#(mark(X1), X2) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2)) (U21#(mark(X1), X2) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2)) (U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, mark(X2)) -> U21#(X1, X2)) (U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2)) (U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2))} SCCS: Scc: { U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2)} SCC: Strict: { U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U21#) = 0 Strict: { U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2)} EDG: {(U21#(X1, active(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2)) (U21#(X1, active(X2)) -> U21#(X1, X2), U21#(X1, mark(X2)) -> U21#(X1, X2)) (U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, mark(X2)) -> U21#(X1, X2)) (U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2))} SCCS: Scc: { U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2)} SCC: Strict: { U21#(X1, mark(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U21#) = 1 Strict: {U21#(X1, active(X2)) -> U21#(X1, X2)} EDG: {(U21#(X1, active(X2)) -> U21#(X1, X2), U21#(X1, active(X2)) -> U21#(X1, X2))} SCCS: Scc: {U21#(X1, active(X2)) -> U21#(X1, X2)} SCC: Strict: {U21#(X1, active(X2)) -> U21#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U21#) = 1 Strict: {} Qed SCC: Strict: { U22#(mark(X)) -> U22#(X), U22#(active(X)) -> U22#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U22#) = 0 Strict: {U22#(active(X)) -> U22#(X)} EDG: {(U22#(active(X)) -> U22#(X), U22#(active(X)) -> U22#(X))} SCCS: Scc: {U22#(active(X)) -> U22#(X)} SCC: Strict: {U22#(active(X)) -> U22#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U22#) = 0 Strict: {} Qed SCC: Strict: { U13#(mark(X)) -> U13#(X), U13#(active(X)) -> U13#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U13#) = 0 Strict: {U13#(active(X)) -> U13#(X)} EDG: {(U13#(active(X)) -> U13#(X), U13#(active(X)) -> U13#(X))} SCCS: Scc: {U13#(active(X)) -> U13#(X)} SCC: Strict: {U13#(active(X)) -> U13#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U13#) = 0 Strict: {} Qed SCC: Strict: { U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(active(X1), X2, X3) -> U11#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U11#) = 0 Strict: { U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)} EDG: {(U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3))} SCCS: Scc: { U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)} SCC: Strict: { U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U11#) = 0 Strict: { U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)} EDG: {(U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3))} SCCS: Scc: { U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)} SCC: Strict: { U11#(X1, X2, mark(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U11#) = 2 Strict: {U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)} EDG: {(U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, active(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3))} SCCS: Scc: {U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)} SCC: Strict: {U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, active(X2), X3) -> U11#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U11#) = 1 Strict: {U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)} EDG: {(U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)) (U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)) (U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3))} SCCS: Scc: {U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)} SCC: Strict: {U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, mark(X2), X3) -> U11#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U11#) = 1 Strict: {U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)} EDG: {(U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3), U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3))} SCCS: Scc: {U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)} SCC: Strict: {U11#(X1, X2, active(X3)) -> U11#(X1, X2, X3)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U11#) = 2 Strict: {} Qed SCC: Strict: { isNat#(mark(X)) -> isNat#(X), isNat#(active(X)) -> isNat#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(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(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(isNat#) = 0 Strict: {} Qed SCC: Strict: { U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2), U12#(active(X1), X2) -> U12#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U12#) = 0 Strict: { U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2)} EDG: {(U12#(X1, active(X2)) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2)) (U12#(X1, active(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2)) (U12#(X1, active(X2)) -> U12#(X1, X2), U12#(X1, mark(X2)) -> U12#(X1, X2)) (U12#(mark(X1), X2) -> U12#(X1, X2), U12#(X1, mark(X2)) -> U12#(X1, X2)) (U12#(mark(X1), X2) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2)) (U12#(mark(X1), X2) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2)) (U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, mark(X2)) -> U12#(X1, X2)) (U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2)) (U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2))} SCCS: Scc: { U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2)} SCC: Strict: { U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U12#) = 0 Strict: { U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2)} EDG: {(U12#(X1, active(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2)) (U12#(X1, active(X2)) -> U12#(X1, X2), U12#(X1, mark(X2)) -> U12#(X1, X2)) (U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, mark(X2)) -> U12#(X1, X2)) (U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2))} SCCS: Scc: { U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2)} SCC: Strict: { U12#(X1, mark(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U12#) = 1 Strict: {U12#(X1, active(X2)) -> U12#(X1, X2)} EDG: {(U12#(X1, active(X2)) -> U12#(X1, X2), U12#(X1, active(X2)) -> U12#(X1, X2))} SCCS: Scc: {U12#(X1, active(X2)) -> U12#(X1, X2)} SCC: Strict: {U12#(X1, active(X2)) -> U12#(X1, X2)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(U12#) = 1 Strict: {} Qed SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> active#(U13(mark(X))), mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> active#(U22(mark(X))), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(s(X)) -> mark#(X), mark#(s(X)) -> active#(s(mark(X))), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [], pi(U41) = [], pi(plus) = [], pi(s) = [], pi(U31) = [], pi(U21) = [], pi(U22) = [], pi(U13) = [], pi(tt) = [], pi(U11) = [], pi(active#) = 0, pi(active) = [], pi(isNat) = [], pi(U12) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [U41] = 1, [U11] = 1, [and] = 1, [plus] = 1, [U31] = 1, [U21] = 1, [U12] = 1, [isNatKind] = 1, [s] = 0, [U22] = 0, [U13] = 0, [isNat] = 1 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(s(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U31(tt(), N)) -> mark#(N)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(s(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U22(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U13(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(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#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(s(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(s(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U22(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U13(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(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#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(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#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(s(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(s(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(s(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U31(tt(), N)) -> mark#(N)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U13(X)) -> mark#(X)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U22(X)) -> mark#(X)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(s(X)) -> mark#(X)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U13(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U22(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(s(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(s(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(s(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(s(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(s(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(s(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(s(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(s(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(s(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U13(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(s(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U31(tt(), N)) -> mark#(N), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), N)) -> mark#(N), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U31(tt(), N)) -> mark#(N), mark#(U13(X)) -> mark#(X)) (active#(U31(tt(), N)) -> mark#(N), mark#(U22(X)) -> mark#(X)) (active#(U31(tt(), N)) -> mark#(N), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(s(X)) -> mark#(X)) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U31(tt(), N)) -> mark#(N), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U31(tt(), N)) -> mark#(N), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(s(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(s(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U13(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U22(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(s(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U41(X1, X2, X3)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), N)) -> mark#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) } SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(s(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(s(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = [0,1,2], pi(plus) = [0,1], pi(s) = [0], pi(U31) = [0,1], pi(U21) = 0, pi(U22) = 0, pi(U13) = 0, pi(tt) = [], pi(U11) = 0, pi(active#) = 0, pi(active) = 0, pi(isNat) = [], pi(U12) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U41](x0, x1, x2) = x0 + x1 + x2 + 1, [and](x0, x1) = x0 + x1, [plus](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [isNatKind] = 0, [s](x0) = x0 + 1, [isNat] = 0, [0] = 0, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(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#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), N)) -> mark#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U31(tt(), N)) -> mark#(N)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U22(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U13(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U22(X)) -> mark#(X)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U13(X)) -> mark#(X)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U13(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U22(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U13(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U22(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (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#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U31(tt(), N)) -> mark#(N)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U13(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U22(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U22(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U31(tt(), N)) -> mark#(N), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), N)) -> mark#(N), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U31(tt(), N)) -> mark#(N), mark#(U13(X)) -> mark#(X)) (active#(U31(tt(), N)) -> mark#(N), mark#(U22(X)) -> mark#(X)) (active#(U31(tt(), N)) -> mark#(N), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U31(tt(), N)) -> mark#(N), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U31(tt(), N)) -> mark#(N), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(isNatKind(X)) -> active#(isNatKind(X))) } SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(plus(N, 0())) -> mark#(U31(and(isNat(N), isNatKind(N)), N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = 2, pi(plus) = [0,1], pi(s) = [], pi(U31) = [0,1], pi(U21) = 0, pi(U22) = 0, pi(U13) = 0, pi(tt) = [], pi(U11) = 0, pi(active#) = 0, pi(active) = 0, pi(isNat) = [], pi(U12) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [plus](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [isNatKind] = 0, [s] = 0, [isNat] = 0, [0] = 1, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U31(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U31(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U22(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U13(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(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#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U31(tt(), N)) -> mark#(N)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U31(tt(), N)) -> mark#(N)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U22(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U13(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U22(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U13(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (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#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U31(tt(), N)) -> mark#(N)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(U31(tt(), N)) -> mark#(N), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(isNat(X)) -> active#(isNat(X))) (active#(U31(tt(), N)) -> mark#(N), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U31(tt(), N)) -> mark#(N), mark#(U13(X)) -> mark#(X)) (active#(U31(tt(), N)) -> mark#(N), mark#(U22(X)) -> mark#(X)) (active#(U31(tt(), N)) -> mark#(N), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U31(tt(), N)) -> mark#(N), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U31(tt(), N)) -> mark#(N), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U31(tt(), N)) -> mark#(N), mark#(and(X1, X2)) -> mark#(X1)) (active#(U31(tt(), N)) -> mark#(N), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U31(tt(), N)) -> mark#(N), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U31(tt(), N)) -> mark#(N)) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U22(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U13(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U22(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U31(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U31(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNatKind(X)) -> active#(isNatKind(X))) } SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U31(tt(), N)) -> mark#(N), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = [], pi(plus) = [0,1], pi(s) = [], pi(U31) = [0,1], pi(U21) = 0, pi(U22) = 0, pi(U13) = 0, pi(tt) = [], pi(U11) = 0, pi(active#) = 0, pi(active) = 0, pi(isNat) = [], pi(U12) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U41] = 0, [and](x0, x1) = x0 + x1, [plus](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1 + 1, [isNatKind] = 0, [s] = 0, [isNat] = 0, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U22(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U13(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(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#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U22(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U13(X)) -> mark#(X)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (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#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U13(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U22(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U13(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U22(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U13(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) } SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(s(V1))) -> mark#(U21(isNatKind(V1), V1)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = [1,2], pi(plus) = [0,1], pi(s) = [0], pi(U31) = 1, pi(U21) = [0,1], pi(U22) = 0, pi(U13) = 0, pi(tt) = [], pi(U11) = [0,1,2], pi(active#) = 0, pi(active) = 0, pi(isNat) = 0, pi(U12) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U41](x0, x1) = x0 + x1 + 1, [U11](x0, x1, x2) = x0 + x1 + x2, [and](x0, x1) = x0 + x1, [plus](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U12](x0, x1) = x0 + x1, [isNatKind] = 0, [s](x0) = x0 + 1, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U22(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U13(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U22(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U13(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U13(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (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#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> mark#(X2)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNat(X)) -> active#(isNat(X))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U13(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U22(X)) -> mark#(X)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> mark#(X2)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> mark#(X1)) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNat(X)) -> active#(isNat(X))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U13(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U22(X)) -> mark#(X)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> mark#(X2)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> mark#(X2), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(plus(X1, X2)) -> mark#(X2), mark#(isNatKind(X)) -> active#(isNatKind(X))) } SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> mark#(X2), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(plus(N, s(M))) -> mark#(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = 2, pi(plus) = [0,1], pi(s) = [], pi(U31) = 1, pi(U21) = 0, pi(U22) = 0, pi(U13) = 0, pi(tt) = [], pi(U11) = 0, pi(active#) = 0, pi(active) = 0, pi(isNat) = [], pi(U12) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [plus](x0, x1) = x0 + x1 + 1, [isNatKind] = 0, [s] = 0, [isNat] = 0, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(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#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U22(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U13(X)) -> mark#(X)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U13(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U13(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U22(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) } SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(U41(tt(), M, N)) -> mark#(s(plus(N, M))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = [], pi(plus) = [0], pi(s) = [], pi(U31) = 1, pi(U21) = 0, pi(U22) = 0, pi(U13) = 0, pi(tt) = [], pi(U11) = 0, pi(active#) = 0, pi(active) = 0, pi(isNat) = [], pi(U12) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U41] = 1, [and](x0, x1) = x0 + x1, [plus](x0) = x0 + 1, [isNatKind] = 0, [s] = 0, [isNat] = 0, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U13(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(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#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(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#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(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#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(and(tt(), X)) -> mark#(X)) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (mark#(U22(X)) -> mark#(X), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U13(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U22(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2)))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) } SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(U31(X1, X2)) -> active#(U31(mark(X1), X2)), mark#(plus(X1, X2)) -> active#(plus(mark(X1), mark(X2))), mark#(U41(X1, X2, X3)) -> active#(U41(mark(X1), X2, X3)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [], pi(U41) = [], pi(plus) = [], pi(s) = [], pi(U31) = [], pi(U21) = [], pi(U22) = [], pi(U13) = [], pi(tt) = [], pi(U11) = [], pi(active#) = 0, pi(active) = [], pi(isNat) = [], pi(U12) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [U41] = 0, [U11] = 1, [and] = 1, [plus] = 0, [U31] = 0, [U21] = 1, [U12] = 1, [isNatKind] = 1, [isNat] = 1 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(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#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U22(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U13(X)) -> mark#(X)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(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#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) } SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(isNat(plus(V1, V2))) -> mark#(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = [1,2], pi(plus) = [0,1], pi(s) = 0, pi(U31) = 1, pi(U21) = [0,1], pi(U22) = 0, pi(U13) = 0, pi(tt) = [], pi(U11) = [0,1,2], pi(active#) = 0, pi(active) = 0, pi(isNat) = 0, pi(U12) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U11](x0, x1, x2) = x0 + x1 + x2, [and](x0, x1) = x0 + x1, [plus](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + x1, [U12](x0, x1) = x0 + x1, [isNatKind] = 0, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNat(X)) -> active#(isNat(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(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#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNat(X)) -> active#(isNat(X))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNat(X)) -> active#(isNat(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNat(X)) -> active#(isNat(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNat(X)) -> active#(isNat(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNat(X)) -> active#(isNat(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNat(X)) -> active#(isNat(X))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) } SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(isNat(X)) -> active#(isNat(X)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [], pi(U41) = [], pi(plus) = [], pi(s) = [], pi(U31) = [], pi(U21) = [], pi(U22) = [], pi(U13) = [], pi(tt) = [], pi(U11) = [], pi(active#) = 0, pi(active) = [], pi(isNat) = [], pi(U12) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [U11] = 1, [and] = 1, [U21] = 1, [U12] = 1, [isNatKind] = 1, [isNat] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U21(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(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#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(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#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U13(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U22(X)) -> mark#(X)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) } SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(U21(tt(), V1)) -> mark#(U22(isNat(V1))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = [1,2], pi(plus) = [0,1], pi(s) = [0], pi(U31) = 1, pi(U21) = [0,1], pi(U22) = 0, pi(U13) = 0, pi(tt) = [], pi(U11) = [0,1,2], pi(active#) = 0, pi(active) = 0, pi(isNat) = 0, pi(U12) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U11](x0, x1, x2) = x0 + x1 + x2, [and](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1, [isNatKind] = 0, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: { (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(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(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) } SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(U21(X1, X2)) -> active#(U21(mark(X1), X2)), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [], pi(U41) = [], pi(plus) = [], pi(s) = [], pi(U31) = [], pi(U21) = [], pi(U22) = [], pi(U13) = [], pi(tt) = [], pi(U11) = [], pi(active#) = 0, pi(active) = [], pi(isNat) = [], pi(U12) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [U11] = 1, [and] = 1, [U21] = 0, [U12] = 1, [isNatKind] = 1 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: {(mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(and(X1, X2)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U22(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U13(X)) -> mark#(X)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2))) (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#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X)))} SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(U11(tt(), V1, V2)) -> mark#(U12(isNat(V1), V2)), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = [1,2], pi(plus) = [0,1], pi(s) = 0, pi(U31) = 1, pi(U21) = 1, pi(U22) = 0, pi(U13) = 0, pi(tt) = [], pi(U11) = [0,1,2], pi(active#) = 0, pi(active) = 0, pi(isNat) = 0, pi(U12) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [U11](x0, x1, x2) = x0 + x1 + x2 + 1, [and](x0, x1) = x0 + x1, [U12](x0, x1) = x0 + x1, [isNatKind] = 0, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: {(mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(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#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(and(tt(), X)) -> mark#(X)) (mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (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#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X)))} SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U11(X1, X2, X3)) -> active#(U11(mark(X1), X2, X3)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [], pi(U41) = [], pi(plus) = [], pi(s) = [], pi(U31) = [], pi(U21) = [], pi(U22) = [], pi(U13) = [], pi(tt) = [], pi(U11) = [], pi(active#) = 0, pi(active) = [], pi(isNat) = [], pi(U12) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [U11] = 0, [and] = 1, [U12] = 1, [isNatKind] = 1 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: {(mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(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#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(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#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(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#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))))} SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(s(V1))) -> mark#(isNatKind(V1)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = 0, pi(0) = [], pi(and) = [0,1], pi(U41) = [1,2], pi(plus) = [0,1], pi(s) = [0], pi(U31) = 1, pi(U21) = [], pi(U22) = 0, pi(U13) = 0, pi(tt) = [], pi(U11) = [], pi(active#) = 0, pi(active) = 0, pi(isNat) = [], pi(U12) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [plus](x0, x1) = x0 + x1, [s](x0) = x0 + 1, [isNat] = 0, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: {(mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(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#(U22(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(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#(U22(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U22(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (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#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U22(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U22(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(U22(X)) -> mark#(X)) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U22(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))))} SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(U22(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = [1,2], pi(plus) = [0,1], pi(s) = [0], pi(U31) = 1, pi(U21) = [1], pi(U22) = [0], pi(U13) = 0, pi(tt) = [], pi(U11) = [1,2], pi(active#) = 0, pi(active) = 0, pi(isNat) = 0, pi(U12) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [U12](x0, x1) = x0 + x1, [isNatKind] = 0, [U22](x0) = x0 + 1, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: {(active#(and(tt(), X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(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#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U13(X)) -> mark#(X)) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (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#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X)))} SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X), active#(isNatKind(plus(V1, V2))) -> mark#(and(isNatKind(V1), isNatKind(V2)))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = 0, pi(0) = [], pi(and) = [0,1], pi(U41) = [1,2], pi(plus) = [0,1], pi(s) = 0, pi(U31) = 1, pi(U21) = [], pi(U22) = [], pi(U13) = 0, pi(tt) = [], pi(U11) = [], pi(active#) = 0, pi(active) = 0, pi(isNat) = [], pi(U12) = 0, pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [plus](x0, x1) = x0 + x1 + 1, [isNat] = 0, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: {(active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(isNatKind(X)) -> active#(isNatKind(X))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(and(tt(), X)) -> mark#(X)) (mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (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#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(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#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (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#(isNatKind(X)) -> active#(isNatKind(X))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(isNatKind(X)) -> active#(isNatKind(X)))} SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X)} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), mark#(isNatKind(X)) -> active#(isNatKind(X)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [], pi(U41) = [], pi(plus) = [], pi(s) = [], pi(U31) = [], pi(U21) = [], pi(U22) = [], pi(U13) = [], pi(tt) = [], pi(U11) = [], pi(active#) = 0, pi(active) = [], pi(isNat) = [], pi(U12) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [and] = 1, [U12] = 1, [isNatKind] = 0 Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: {(mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> mark#(X1)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(and(tt(), X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (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))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> mark#(X1)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (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)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2)))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(U13(X)) -> mark#(X)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> mark#(X1)) (active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)))} SCCS: Scc: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X)} SCC: Strict: { mark#(U12(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(U12(tt(), V2)) -> mark#(U13(isNat(V2))), active#(and(tt(), X)) -> mark#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = [], pi(plus) = [0,1], pi(s) = [], pi(U31) = 1, pi(U21) = [], pi(U22) = [], pi(U13) = 0, pi(tt) = [], pi(U11) = [1,2], pi(active#) = 0, pi(active) = 0, pi(isNat) = 0, pi(U12) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [U12](x0, x1) = x0 + x1 + 1, [tt] = 0 Strict: { mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: {(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#(U13(X)) -> mark#(X)) (active#(and(tt(), X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (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#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2))) (mark#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)))} SCCS: Scc: { mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)} SCC: Strict: { mark#(U12(X1, X2)) -> active#(U12(mark(X1), X2)), mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [], pi(U41) = [], pi(plus) = [], pi(s) = [], pi(U31) = [], pi(U21) = [], pi(U22) = [], pi(U13) = [], pi(tt) = [], pi(U11) = [], pi(active#) = 0, pi(active) = [], pi(isNat) = [], pi(U12) = [], pi(mark#) = [], pi(mark) = [] Usable Rules: {} Interpretation: [mark#] = 1, [and] = 1, [U12] = 0 Strict: { mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: {(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#(U13(X)) -> mark#(X)) (mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (mark#(and(X1, X2)) -> mark#(X1), mark#(U13(X)) -> mark#(X)) (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#(U13(X)) -> mark#(X), mark#(U13(X)) -> mark#(X)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1)) (mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)))} SCCS: Scc: { mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)} SCC: Strict: { mark#(U13(X)) -> mark#(X), mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = [], pi(0) = [], pi(and) = [0,1], pi(U41) = [2], pi(plus) = [0,1], pi(s) = [], pi(U31) = 1, pi(U21) = [], pi(U22) = [], pi(U13) = [0], pi(tt) = [], pi(U11) = [1,2], pi(active#) = 0, pi(active) = 0, pi(isNat) = 0, pi(U12) = [0,1], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [U13](x0) = x0 + 1, [tt] = 0 Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: {(mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)) (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))) (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)))} SCCS: Scc: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)} SCC: Strict: { mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2)), active#(and(tt(), X)) -> mark#(X)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} POLY: Argument Filtering: pi(isNatKind) = 0, pi(0) = [], pi(and) = [0,1], pi(U41) = [1,2], pi(plus) = [0,1], pi(s) = 0, pi(U31) = 1, pi(U21) = 1, pi(U22) = 0, pi(U13) = [], pi(tt) = [], pi(U11) = [0], pi(active#) = 0, pi(active) = 0, pi(isNat) = 0, pi(U12) = [], pi(mark#) = 0, pi(mark) = 0 Usable Rules: {} Interpretation: [and](x0, x1) = x0 + x1, [tt] = 1 Strict: {mark#(and(X1, X2)) -> mark#(X1), mark#(and(X1, X2)) -> active#(and(mark(X1), X2))} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} EDG: {(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)))} SCCS: Scc: {mark#(and(X1, X2)) -> mark#(X1)} SCC: Strict: {mark#(and(X1, X2)) -> mark#(X1)} Weak: { mark(U12(X1, X2)) -> active(U12(mark(X1), X2)), mark(isNat(X)) -> active(isNat(X)), mark(U11(X1, X2, X3)) -> active(U11(mark(X1), X2, X3)), mark(tt()) -> active(tt()), mark(U13(X)) -> active(U13(mark(X))), mark(U22(X)) -> active(U22(mark(X))), mark(U21(X1, X2)) -> active(U21(mark(X1), X2)), mark(U31(X1, X2)) -> active(U31(mark(X1), X2)), mark(s(X)) -> active(s(mark(X))), mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))), mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)), mark(and(X1, X2)) -> active(and(mark(X1), X2)), mark(0()) -> active(0()), mark(isNatKind(X)) -> active(isNatKind(X)), U12(X1, mark(X2)) -> U12(X1, X2), U12(X1, active(X2)) -> U12(X1, X2), U12(mark(X1), X2) -> U12(X1, X2), U12(active(X1), X2) -> U12(X1, X2), isNat(mark(X)) -> isNat(X), isNat(active(X)) -> isNat(X), active(U12(tt(), V2)) -> mark(U13(isNat(V2))), active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)), active(isNat(plus(V1, V2))) -> mark(U11(and(isNatKind(V1), isNatKind(V2)), V1, V2)), active(isNat(0())) -> mark(tt()), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(tt())) -> mark(tt()), active(U22(tt())) -> mark(tt()), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(tt(), N)) -> mark(N), active(plus(N, s(M))) -> mark(U41(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)), active(plus(N, 0())) -> mark(U31(and(isNat(N), isNatKind(N)), N)), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(tt(), X)) -> mark(X), active(isNatKind(s(V1))) -> mark(isNatKind(V1)), active(isNatKind(plus(V1, V2))) -> mark(and(isNatKind(V1), isNatKind(V2))), active(isNatKind(0())) -> mark(tt()), U11(X1, X2, mark(X3)) -> U11(X1, X2, X3), U11(X1, X2, active(X3)) -> U11(X1, X2, X3), U11(X1, mark(X2), X3) -> U11(X1, X2, X3), U11(X1, active(X2), X3) -> U11(X1, X2, X3), U11(mark(X1), X2, X3) -> U11(X1, X2, X3), U11(active(X1), X2, X3) -> U11(X1, X2, X3), U13(mark(X)) -> U13(X), U13(active(X)) -> U13(X), U22(mark(X)) -> U22(X), U22(active(X)) -> U22(X), U21(X1, mark(X2)) -> U21(X1, X2), U21(X1, active(X2)) -> U21(X1, X2), U21(mark(X1), X2) -> U21(X1, X2), U21(active(X1), X2) -> U21(X1, X2), U31(X1, mark(X2)) -> U31(X1, X2), U31(X1, active(X2)) -> U31(X1, X2), U31(mark(X1), X2) -> U31(X1, X2), U31(active(X1), X2) -> U31(X1, X2), s(mark(X)) -> s(X), s(active(X)) -> s(X), plus(X1, mark(X2)) -> plus(X1, X2), plus(X1, active(X2)) -> plus(X1, X2), plus(mark(X1), X2) -> plus(X1, X2), plus(active(X1), X2) -> plus(X1, X2), U41(X1, X2, mark(X3)) -> U41(X1, X2, X3), U41(X1, X2, active(X3)) -> U41(X1, X2, X3), U41(X1, mark(X2), X3) -> U41(X1, X2, X3), U41(X1, active(X2), X3) -> U41(X1, X2, X3), U41(mark(X1), X2, X3) -> U41(X1, X2, X3), U41(active(X1), X2, X3) -> U41(X1, X2, X3), 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), isNatKind(mark(X)) -> isNatKind(X), isNatKind(active(X)) -> isNatKind(X)} SPSC: Simple Projection: pi(mark#) = 0 Strict: {} Qed