MAYBE TRS: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} DP: Strict: { U12#(mark(X1), X2) -> U12#(X1, X2), U12#(ok(X1), ok(X2)) -> U12#(X1, X2), isNat#(ok(X)) -> isNat#(X), active#(U12(X1, X2)) -> U12#(active(X1), X2), active#(U12(X1, X2)) -> active#(X1), active#(U12(tt(), V2)) -> isNat#(V2), active#(U12(tt(), V2)) -> U13#(isNat(V2)), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1), active#(isNat(s(V1))) -> isNatKind#(V1), 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#(U11(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2), active#(U11(tt(), V1, V2)) -> isNat#(V1), active#(U13(X)) -> active#(X), active#(U13(X)) -> U13#(active(X)), active#(U22(X)) -> active#(X), active#(U22(X)) -> U22#(active(X)), active#(U21(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> U21#(active(X1), X2), active#(U21(tt(), V1)) -> isNat#(V1), active#(U21(tt(), V1)) -> U22#(isNat(V1)), active#(U31(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> U31#(active(X1), X2), active#(s(X)) -> active#(X), active#(s(X)) -> s#(active(X)), 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())) -> 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#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(plus(X1, X2)) -> plus#(X1, active(X2)), active#(plus(X1, X2)) -> plus#(active(X1), X2), active#(U41(X1, X2, X3)) -> active#(X1), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3), active#(U41(tt(), M, N)) -> s#(plus(N, M)), active#(U41(tt(), M, N)) -> plus#(N, M), active#(and(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> and#(active(X1), X2), active#(isNatKind(s(V1))) -> isNatKind#(V1), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(ok(X1), ok(X2), ok(X3)) -> U11#(X1, X2, X3), U13#(mark(X)) -> U13#(X), U13#(ok(X)) -> U13#(X), U22#(mark(X)) -> U22#(X), U22#(ok(X)) -> U22#(X), U21#(mark(X1), X2) -> U21#(X1, X2), U21#(ok(X1), ok(X2)) -> U21#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2), U31#(ok(X1), ok(X2)) -> U31#(X1, X2), s#(mark(X)) -> s#(X), s#(ok(X)) -> s#(X), plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2), plus#(ok(X1), ok(X2)) -> plus#(X1, X2), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(ok(X1), ok(X2), ok(X3)) -> U41#(X1, X2, X3), and#(mark(X1), X2) -> and#(X1, X2), and#(ok(X1), ok(X2)) -> and#(X1, X2), isNatKind#(ok(X)) -> isNatKind#(X), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2)), proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> isNat#(proper(X)), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3)), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> U13#(proper(X)), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> U22#(proper(X)), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2)), proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2)), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> s#(proper(X)), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2)), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3)), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2)), proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> isNatKind#(proper(X)), proper#(isNatKind(X)) -> proper#(X), top#(mark(X)) -> proper#(X), top#(mark(X)) -> top#(proper(X)), top#(ok(X)) -> active#(X), top#(ok(X)) -> top#(active(X))} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} EDG: { (isNat#(ok(X)) -> isNat#(X), isNat#(ok(X)) -> isNat#(X)) (active#(U22(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (active#(U22(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (active#(U22(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U22(X)) -> active#(X), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (active#(U22(X)) -> active#(X), active#(and(X1, X2)) -> and#(active(X1), X2)) (active#(U22(X)) -> active#(X), active#(and(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U41(tt(), M, N)) -> plus#(N, M)) (active#(U22(X)) -> active#(X), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (active#(U22(X)) -> active#(X), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (active#(U22(X)) -> active#(X), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (active#(U22(X)) -> active#(X), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (active#(U22(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X2)) (active#(U22(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(plus(N, 0())) -> isNatKind#(N)) (active#(U22(X)) -> active#(X), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (active#(U22(X)) -> active#(X), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (active#(U22(X)) -> active#(X), active#(plus(N, 0())) -> isNat#(N)) (active#(U22(X)) -> active#(X), active#(plus(N, s(M))) -> isNatKind#(M)) (active#(U22(X)) -> active#(X), active#(plus(N, s(M))) -> isNatKind#(N)) (active#(U22(X)) -> active#(X), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (active#(U22(X)) -> active#(X), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (active#(U22(X)) -> active#(X), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (active#(U22(X)) -> active#(X), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (active#(U22(X)) -> active#(X), active#(plus(N, s(M))) -> isNat#(M)) (active#(U22(X)) -> active#(X), active#(plus(N, s(M))) -> isNat#(N)) (active#(U22(X)) -> active#(X), active#(s(X)) -> s#(active(X))) (active#(U22(X)) -> active#(X), active#(s(X)) -> active#(X)) (active#(U22(X)) -> active#(X), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (active#(U22(X)) -> active#(X), active#(U31(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (active#(U22(X)) -> active#(X), active#(U21(tt(), V1)) -> isNat#(V1)) (active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U22(X)) -> U22#(active(X))) (active#(U22(X)) -> active#(X), active#(U22(X)) -> active#(X)) (active#(U22(X)) -> active#(X), active#(U13(X)) -> U13#(active(X))) (active#(U22(X)) -> active#(X), active#(U13(X)) -> active#(X)) (active#(U22(X)) -> active#(X), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (active#(U22(X)) -> active#(X), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (active#(U22(X)) -> active#(X), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (active#(U22(X)) -> active#(X), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (active#(U22(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (active#(U22(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U22(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (active#(U22(X)) -> active#(X), active#(isNat(s(V1))) -> isNatKind#(V1)) (active#(U22(X)) -> active#(X), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (active#(U22(X)) -> active#(X), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (active#(U22(X)) -> active#(X), active#(U12(tt(), V2)) -> isNat#(V2)) (active#(U22(X)) -> active#(X), active#(U12(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (U13#(mark(X)) -> U13#(X), U13#(ok(X)) -> U13#(X)) (U13#(mark(X)) -> U13#(X), U13#(mark(X)) -> U13#(X)) (U22#(mark(X)) -> U22#(X), U22#(ok(X)) -> U22#(X)) (U22#(mark(X)) -> U22#(X), U22#(mark(X)) -> U22#(X)) (s#(mark(X)) -> s#(X), s#(ok(X)) -> s#(X)) (s#(mark(X)) -> s#(X), s#(mark(X)) -> s#(X)) (isNatKind#(ok(X)) -> isNatKind#(X), isNatKind#(ok(X)) -> isNatKind#(X)) (proper#(U13(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U13(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U13(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(s(X)) -> s#(proper(X))) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> U22#(proper(X))) (proper#(U13(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U13(X)) -> U13#(proper(X))) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U13(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(s(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(s(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> s#(proper(X))) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> U22#(proper(X))) (proper#(s(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U13(X)) -> U13#(proper(X))) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(s(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (top#(mark(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (top#(mark(X)) -> proper#(X), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (top#(mark(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X2)) (top#(mark(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (top#(mark(X)) -> proper#(X), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (top#(mark(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (top#(mark(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (top#(mark(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (top#(mark(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (top#(mark(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (top#(mark(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (top#(mark(X)) -> proper#(X), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (top#(mark(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (top#(mark(X)) -> proper#(X), proper#(s(X)) -> s#(proper(X))) (top#(mark(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (top#(mark(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (top#(mark(X)) -> proper#(X), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (top#(mark(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X2)) (top#(mark(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (top#(mark(X)) -> proper#(X), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (top#(mark(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (top#(mark(X)) -> proper#(X), proper#(U22(X)) -> U22#(proper(X))) (top#(mark(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (top#(mark(X)) -> proper#(X), proper#(U13(X)) -> U13#(proper(X))) (top#(mark(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (top#(mark(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (top#(mark(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (top#(mark(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (top#(mark(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (top#(mark(X)) -> proper#(X), proper#(isNat(X)) -> isNat#(proper(X))) (top#(mark(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (top#(mark(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (top#(mark(X)) -> proper#(X), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (active#(U13(X)) -> U13#(active(X)), U13#(ok(X)) -> U13#(X)) (active#(U13(X)) -> U13#(active(X)), U13#(mark(X)) -> U13#(X)) (active#(s(X)) -> s#(active(X)), s#(ok(X)) -> s#(X)) (active#(s(X)) -> s#(active(X)), s#(mark(X)) -> s#(X)) (proper#(U13(X)) -> U13#(proper(X)), U13#(ok(X)) -> U13#(X)) (proper#(U13(X)) -> U13#(proper(X)), U13#(mark(X)) -> U13#(X)) (proper#(s(X)) -> s#(proper(X)), s#(ok(X)) -> s#(X)) (proper#(s(X)) -> s#(proper(X)), s#(mark(X)) -> s#(X)) (top#(mark(X)) -> top#(proper(X)), top#(ok(X)) -> top#(active(X))) (top#(mark(X)) -> top#(proper(X)), top#(ok(X)) -> active#(X)) (top#(mark(X)) -> top#(proper(X)), top#(mark(X)) -> top#(proper(X))) (top#(mark(X)) -> top#(proper(X)), top#(mark(X)) -> proper#(X)) (active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1), U21#(ok(X1), ok(X2)) -> U21#(X1, X2)) (active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1), U21#(mark(X1), X2) -> U21#(X1, X2)) (active#(U12(tt(), V2)) -> U13#(isNat(V2)), U13#(ok(X)) -> U13#(X)) (active#(U12(tt(), V2)) -> U13#(isNat(V2)), U13#(mark(X)) -> U13#(X)) (active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), and#(ok(X1), ok(X2)) -> and#(X1, X2)) (active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M)), and#(ok(X1), ok(X2)) -> and#(X1, X2)) (active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(plus(X1, X2)) -> plus#(X1, active(X2)), plus#(ok(X1), ok(X2)) -> plus#(X1, X2)) (active#(plus(X1, X2)) -> plus#(X1, active(X2)), plus#(mark(X1), X2) -> plus#(X1, X2)) (active#(plus(X1, X2)) -> plus#(X1, active(X2)), plus#(X1, mark(X2)) -> plus#(X1, X2)) (proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2)), U12#(ok(X1), ok(X2)) -> U12#(X1, X2)) (proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2)), U12#(mark(X1), X2) -> U12#(X1, X2)) (proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2)), U31#(ok(X1), ok(X2)) -> U31#(X1, X2)) (proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2)), U31#(mark(X1), X2) -> U31#(X1, X2)) (proper#(and(X1, X2)) -> and#(proper(X1), proper(X2)), and#(ok(X1), ok(X2)) -> and#(X1, X2)) (proper#(and(X1, X2)) -> and#(proper(X1), proper(X2)), and#(mark(X1), X2) -> and#(X1, X2)) (active#(U41(tt(), M, N)) -> s#(plus(N, M)), s#(ok(X)) -> s#(X)) (active#(U41(tt(), M, N)) -> s#(plus(N, M)), s#(mark(X)) -> s#(X)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> and#(active(X1), X2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U41(tt(), M, N)) -> plus#(N, M)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, 0())) -> isNatKind#(N)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, 0())) -> isNat#(N)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(M)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(N)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(M)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(N)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(s(X)) -> s#(active(X))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(tt(), V1)) -> isNat#(V1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> U22#(active(X))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U13(X)) -> U13#(active(X))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U13(X)) -> active#(X)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(isNat(s(V1))) -> isNatKind#(V1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U12(tt(), V2)) -> isNat#(V2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (active#(U31(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (active#(U31(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (active#(U31(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U31(X1, X2)) -> active#(X1), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (active#(U31(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> and#(active(X1), X2)) (active#(U31(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U41(tt(), M, N)) -> plus#(N, M)) (active#(U31(X1, X2)) -> active#(X1), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (active#(U31(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (active#(U31(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> isNatKind#(N)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> isNat#(N)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(M)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(N)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(M)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(N)) (active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> s#(active(X))) (active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U31(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (active#(U31(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (active#(U31(X1, X2)) -> active#(X1), active#(U21(tt(), V1)) -> isNat#(V1)) (active#(U31(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (active#(U31(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U22(X)) -> U22#(active(X))) (active#(U31(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U31(X1, X2)) -> active#(X1), active#(U13(X)) -> U13#(active(X))) (active#(U31(X1, X2)) -> active#(X1), active#(U13(X)) -> active#(X)) (active#(U31(X1, X2)) -> active#(X1), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (active#(U31(X1, X2)) -> active#(X1), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (active#(U31(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (active#(U31(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (active#(U31(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (active#(U31(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U31(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (active#(U31(X1, X2)) -> active#(X1), active#(isNat(s(V1))) -> isNatKind#(V1)) (active#(U31(X1, X2)) -> active#(X1), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (active#(U31(X1, X2)) -> active#(X1), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (active#(U31(X1, X2)) -> active#(X1), active#(U12(tt(), V2)) -> isNat#(V2)) (active#(U31(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> and#(active(X1), X2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U41(tt(), M, N)) -> plus#(N, M)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, 0())) -> isNatKind#(N)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, 0())) -> isNat#(N)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(M)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(N)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(M)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(N)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(s(X)) -> s#(active(X))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U21(tt(), V1)) -> isNat#(V1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> U22#(active(X))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U13(X)) -> U13#(active(X))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U13(X)) -> active#(X)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(isNat(s(V1))) -> isNatKind#(V1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U12(tt(), V2)) -> isNat#(V2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U12(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> s#(proper(X))) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> U22#(proper(X))) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U13(X)) -> U13#(proper(X))) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> s#(proper(X))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> U22#(proper(X))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U13(X)) -> U13#(proper(X))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(s(X)) -> s#(proper(X))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U22(X)) -> U22#(proper(X))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U13(X)) -> U13#(proper(X))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(and(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(and(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(and(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(s(X)) -> s#(proper(X))) (proper#(and(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(and(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(and(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U22(X)) -> U22#(proper(X))) (proper#(and(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U13(X)) -> U13#(proper(X))) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(and(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(and(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (active#(isNat(plus(V1, V2))) -> isNatKind#(V1), isNatKind#(ok(X)) -> isNatKind#(X)) (active#(U21(tt(), V1)) -> isNat#(V1), isNat#(ok(X)) -> isNat#(X)) (active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1), isNatKind#(ok(X)) -> isNatKind#(X)) (active#(U12(X1, X2)) -> U12#(active(X1), X2), U12#(ok(X1), ok(X2)) -> U12#(X1, X2)) (active#(U12(X1, X2)) -> U12#(active(X1), X2), U12#(mark(X1), X2) -> U12#(X1, X2)) (active#(U31(X1, X2)) -> U31#(active(X1), X2), U31#(ok(X1), ok(X2)) -> U31#(X1, X2)) (active#(U31(X1, X2)) -> U31#(active(X1), X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (active#(and(X1, X2)) -> and#(active(X1), X2), and#(ok(X1), ok(X2)) -> and#(X1, X2)) (active#(and(X1, X2)) -> and#(active(X1), X2), and#(mark(X1), X2) -> and#(X1, X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U12(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> s#(proper(X))) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> U22#(proper(X))) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U13(X)) -> U13#(proper(X))) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(s(X)) -> s#(proper(X))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U22(X)) -> U22#(proper(X))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U13(X)) -> U13#(proper(X))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(s(X)) -> s#(proper(X))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U22(X)) -> U22#(proper(X))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U13(X)) -> U13#(proper(X))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(and(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(and(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(and(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(and(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(and(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X2), proper#(s(X)) -> s#(proper(X))) (proper#(and(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(and(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(and(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U22(X)) -> U22#(proper(X))) (proper#(and(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U13(X)) -> U13#(proper(X))) (proper#(and(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(and(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(and(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (U12#(mark(X1), X2) -> U12#(X1, X2), U12#(ok(X1), ok(X2)) -> U12#(X1, X2)) (U12#(mark(X1), X2) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2)) (U21#(mark(X1), X2) -> U21#(X1, X2), U21#(ok(X1), ok(X2)) -> U21#(X1, X2)) (U21#(mark(X1), X2) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2)) (U31#(mark(X1), X2) -> U31#(X1, X2), U31#(ok(X1), ok(X2)) -> U31#(X1, X2)) (U31#(mark(X1), X2) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(ok(X1), ok(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, mark(X2)) -> plus#(X1, X2)) (plus#(ok(X1), ok(X2)) -> plus#(X1, X2), plus#(ok(X1), ok(X2)) -> plus#(X1, X2)) (plus#(ok(X1), ok(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)) (plus#(ok(X1), ok(X2)) -> plus#(X1, X2), plus#(X1, mark(X2)) -> plus#(X1, X2)) (and#(ok(X1), ok(X2)) -> and#(X1, X2), and#(ok(X1), ok(X2)) -> and#(X1, X2)) (and#(ok(X1), ok(X2)) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2)) (active#(isNat(plus(V1, V2))) -> isNatKind#(V2), isNatKind#(ok(X)) -> isNatKind#(X)) (active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3), U11#(ok(X1), ok(X2), ok(X3)) -> U11#(X1, X2, X3)) (active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(ok(X1), ok(X2), ok(X3)) -> U11#(X1, X2, X3)) (U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(ok(X1), ok(X2), ok(X3)) -> U41#(X1, X2, X3)) (U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNatKind(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> s#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> U22#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> U13#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (active#(plus(N, s(M))) -> isNat#(N), isNat#(ok(X)) -> isNat#(X)) (active#(plus(N, 0())) -> isNat#(N), isNat#(ok(X)) -> isNat#(X)) (proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3)), U11#(ok(X1), ok(X2), ok(X3)) -> U11#(X1, X2, X3)) (proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3)), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N), U31#(ok(X1), ok(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, s(M))) -> isNatKind#(M), isNatKind#(ok(X)) -> isNatKind#(X)) (active#(plus(N, s(M))) -> isNat#(M), isNat#(ok(X)) -> isNat#(X)) (proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3)), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3)), U41#(ok(X1), ok(X2), ok(X3)) -> U41#(X1, X2, X3)) (active#(plus(N, 0())) -> isNatKind#(N), isNatKind#(ok(X)) -> isNatKind#(X)) (active#(plus(N, s(M))) -> isNatKind#(N), isNatKind#(ok(X)) -> isNatKind#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> U13#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> U22#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> s#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(isNatKind(X)) -> proper#(X)) (U41#(ok(X1), ok(X2), ok(X3)) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (U41#(ok(X1), ok(X2), ok(X3)) -> U41#(X1, X2, X3), U41#(ok(X1), ok(X2), ok(X3)) -> U41#(X1, X2, X3)) (U11#(ok(X1), ok(X2), ok(X3)) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)) (U11#(ok(X1), ok(X2), ok(X3)) -> U11#(X1, X2, X3), U11#(ok(X1), ok(X2), ok(X3)) -> U11#(X1, X2, X3)) (active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)) (active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3), U41#(ok(X1), ok(X2), ok(X3)) -> U41#(X1, X2, X3)) (active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2), isNatKind#(ok(X)) -> isNatKind#(X)) (active#(U12(tt(), V2)) -> isNat#(V2), isNat#(ok(X)) -> isNat#(X)) (and#(mark(X1), X2) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2)) (and#(mark(X1), X2) -> and#(X1, X2), and#(ok(X1), ok(X2)) -> and#(X1, X2)) (plus#(mark(X1), X2) -> plus#(X1, X2), plus#(X1, mark(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#(ok(X1), ok(X2)) -> plus#(X1, X2)) (U31#(ok(X1), ok(X2)) -> U31#(X1, X2), U31#(mark(X1), X2) -> U31#(X1, X2)) (U31#(ok(X1), ok(X2)) -> U31#(X1, X2), U31#(ok(X1), ok(X2)) -> U31#(X1, X2)) (U21#(ok(X1), ok(X2)) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2)) (U21#(ok(X1), ok(X2)) -> U21#(X1, X2), U21#(ok(X1), ok(X2)) -> U21#(X1, X2)) (U12#(ok(X1), ok(X2)) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2)) (U12#(ok(X1), ok(X2)) -> U12#(X1, X2), U12#(ok(X1), ok(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#(ok(X1), ok(X2)) -> U12#(X1, X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> U13#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> U22#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> s#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U13(X)) -> U13#(proper(X))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> U22#(proper(X))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> s#(proper(X))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> U13#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> U22#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> s#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (active#(plus(X1, X2)) -> active#(X2), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (active#(plus(X1, X2)) -> active#(X2), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U12(tt(), V2)) -> isNat#(V2)) (active#(plus(X1, X2)) -> active#(X2), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (active#(plus(X1, X2)) -> active#(X2), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (active#(plus(X1, X2)) -> active#(X2), active#(isNat(s(V1))) -> isNatKind#(V1)) (active#(plus(X1, X2)) -> active#(X2), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (active#(plus(X1, X2)) -> active#(X2), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(plus(X1, X2)) -> active#(X2), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (active#(plus(X1, X2)) -> active#(X2), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (active#(plus(X1, X2)) -> active#(X2), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (active#(plus(X1, X2)) -> active#(X2), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (active#(plus(X1, X2)) -> active#(X2), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (active#(plus(X1, X2)) -> active#(X2), active#(U13(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X2), active#(U13(X)) -> U13#(active(X))) (active#(plus(X1, X2)) -> active#(X2), active#(U22(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X2), active#(U22(X)) -> U22#(active(X))) (active#(plus(X1, X2)) -> active#(X2), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (active#(plus(X1, X2)) -> active#(X2), active#(U21(tt(), V1)) -> isNat#(V1)) (active#(plus(X1, X2)) -> active#(X2), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (active#(plus(X1, X2)) -> active#(X2), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (active#(plus(X1, X2)) -> active#(X2), active#(s(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X2), active#(s(X)) -> s#(active(X))) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, s(M))) -> isNat#(N)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, s(M))) -> isNat#(M)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, s(M))) -> isNatKind#(N)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, s(M))) -> isNatKind#(M)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, 0())) -> isNat#(N)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (active#(plus(X1, X2)) -> active#(X2), active#(plus(N, 0())) -> isNatKind#(N)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(X1, X2)) -> active#(X2)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (active#(plus(X1, X2)) -> active#(X2), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (active#(plus(X1, X2)) -> active#(X2), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (active#(plus(X1, X2)) -> active#(X2), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (active#(plus(X1, X2)) -> active#(X2), active#(U41(tt(), M, N)) -> plus#(N, M)) (active#(plus(X1, X2)) -> active#(X2), active#(and(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(and(X1, X2)) -> and#(active(X1), X2)) (active#(plus(X1, X2)) -> active#(X2), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (active#(plus(X1, X2)) -> active#(X2), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(plus(X1, X2)) -> active#(X2), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (active#(plus(X1, X2)) -> active#(X2), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (active#(plus(X1, X2)) -> plus#(active(X1), X2), plus#(X1, mark(X2)) -> plus#(X1, X2)) (active#(plus(X1, X2)) -> plus#(active(X1), X2), plus#(mark(X1), X2) -> plus#(X1, X2)) (active#(plus(X1, X2)) -> plus#(active(X1), X2), plus#(ok(X1), ok(X2)) -> plus#(X1, X2)) (active#(U21(X1, X2)) -> U21#(active(X1), X2), U21#(mark(X1), X2) -> U21#(X1, X2)) (active#(U21(X1, X2)) -> U21#(active(X1), X2), U21#(ok(X1), ok(X2)) -> U21#(X1, X2)) (active#(U41(tt(), M, N)) -> plus#(N, M), plus#(X1, mark(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#(ok(X1), ok(X2)) -> plus#(X1, X2)) (active#(isNatKind(s(V1))) -> isNatKind#(V1), isNatKind#(ok(X)) -> isNatKind#(X)) (active#(U11(tt(), V1, V2)) -> isNat#(V1), isNat#(ok(X)) -> isNat#(X)) (active#(isNat(s(V1))) -> isNatKind#(V1), isNatKind#(ok(X)) -> isNatKind#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> U13#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> U22#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> s#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U13(X)) -> U13#(proper(X))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> U22#(proper(X))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> s#(proper(X))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> U13#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> U22#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> s#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (active#(and(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (active#(and(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U12(tt(), V2)) -> isNat#(V2)) (active#(and(X1, X2)) -> active#(X1), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (active#(and(X1, X2)) -> active#(X1), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (active#(and(X1, X2)) -> active#(X1), active#(isNat(s(V1))) -> isNatKind#(V1)) (active#(and(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (active#(and(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(and(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (active#(and(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (active#(and(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (active#(and(X1, X2)) -> active#(X1), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (active#(and(X1, X2)) -> active#(X1), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (active#(and(X1, X2)) -> active#(X1), active#(U13(X)) -> active#(X)) (active#(and(X1, X2)) -> active#(X1), active#(U13(X)) -> U13#(active(X))) (active#(and(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(and(X1, X2)) -> active#(X1), active#(U22(X)) -> U22#(active(X))) (active#(and(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (active#(and(X1, X2)) -> active#(X1), active#(U21(tt(), V1)) -> isNat#(V1)) (active#(and(X1, X2)) -> active#(X1), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (active#(and(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (active#(and(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(and(X1, X2)) -> active#(X1), active#(s(X)) -> s#(active(X))) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(N)) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(M)) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(N)) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(M)) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> isNat#(N)) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (active#(and(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> isNatKind#(N)) (active#(and(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(and(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (active#(and(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (active#(and(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (active#(and(X1, X2)) -> active#(X1), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (active#(and(X1, X2)) -> active#(X1), active#(U41(tt(), M, N)) -> plus#(N, M)) (active#(and(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> and#(active(X1), X2)) (active#(and(X1, X2)) -> active#(X1), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (active#(and(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(and(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (active#(and(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(tt(), V2)) -> isNat#(V2)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (active#(plus(X1, X2)) -> active#(X1), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (active#(plus(X1, X2)) -> active#(X1), active#(isNat(s(V1))) -> isNatKind#(V1)) (active#(plus(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (active#(plus(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(plus(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (active#(plus(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (active#(plus(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (active#(plus(X1, X2)) -> active#(X1), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (active#(plus(X1, X2)) -> active#(X1), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (active#(plus(X1, X2)) -> active#(X1), active#(U13(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X1), active#(U13(X)) -> U13#(active(X))) (active#(plus(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X1), active#(U22(X)) -> U22#(active(X))) (active#(plus(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (active#(plus(X1, X2)) -> active#(X1), active#(U21(tt(), V1)) -> isNat#(V1)) (active#(plus(X1, X2)) -> active#(X1), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (active#(plus(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (active#(plus(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X1), active#(s(X)) -> s#(active(X))) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(N)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(M)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(N)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(M)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> isNat#(N)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (active#(plus(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> isNatKind#(N)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (active#(plus(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (active#(plus(X1, X2)) -> active#(X1), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (active#(plus(X1, X2)) -> active#(X1), active#(U41(tt(), M, N)) -> plus#(N, M)) (active#(plus(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> and#(active(X1), X2)) (active#(plus(X1, X2)) -> active#(X1), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (active#(plus(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(plus(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (active#(plus(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(tt(), V2)) -> isNat#(V2)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (active#(U21(X1, X2)) -> active#(X1), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (active#(U21(X1, X2)) -> active#(X1), active#(isNat(s(V1))) -> isNatKind#(V1)) (active#(U21(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (active#(U21(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U21(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (active#(U21(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (active#(U21(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (active#(U21(X1, X2)) -> active#(X1), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (active#(U21(X1, X2)) -> active#(X1), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (active#(U21(X1, X2)) -> active#(X1), active#(U13(X)) -> active#(X)) (active#(U21(X1, X2)) -> active#(X1), active#(U13(X)) -> U13#(active(X))) (active#(U21(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U21(X1, X2)) -> active#(X1), active#(U22(X)) -> U22#(active(X))) (active#(U21(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (active#(U21(X1, X2)) -> active#(X1), active#(U21(tt(), V1)) -> isNat#(V1)) (active#(U21(X1, X2)) -> active#(X1), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (active#(U21(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U21(X1, X2)) -> active#(X1), active#(s(X)) -> s#(active(X))) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(N)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(M)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(N)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(M)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> isNat#(N)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (active#(U21(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> isNatKind#(N)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (active#(U21(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (active#(U21(X1, X2)) -> active#(X1), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (active#(U21(X1, X2)) -> active#(X1), active#(U41(tt(), M, N)) -> plus#(N, M)) (active#(U21(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> and#(active(X1), X2)) (active#(U21(X1, X2)) -> active#(X1), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (active#(U21(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U21(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (active#(U21(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(tt(), V2)) -> isNat#(V2)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (active#(U12(X1, X2)) -> active#(X1), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (active#(U12(X1, X2)) -> active#(X1), active#(isNat(s(V1))) -> isNatKind#(V1)) (active#(U12(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (active#(U12(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U12(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (active#(U12(X1, X2)) -> active#(X1), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (active#(U12(X1, X2)) -> active#(X1), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (active#(U12(X1, X2)) -> active#(X1), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (active#(U12(X1, X2)) -> active#(X1), active#(U13(X)) -> active#(X)) (active#(U12(X1, X2)) -> active#(X1), active#(U13(X)) -> U13#(active(X))) (active#(U12(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U12(X1, X2)) -> active#(X1), active#(U22(X)) -> U22#(active(X))) (active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (active#(U12(X1, X2)) -> active#(X1), active#(U21(tt(), V1)) -> isNat#(V1)) (active#(U12(X1, X2)) -> active#(X1), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (active#(U12(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (active#(U12(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U12(X1, X2)) -> active#(X1), active#(s(X)) -> s#(active(X))) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(N)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNat#(M)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(N)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, s(M))) -> isNatKind#(M)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> isNat#(N)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (active#(U12(X1, X2)) -> active#(X1), active#(plus(N, 0())) -> isNatKind#(N)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (active#(U12(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (active#(U12(X1, X2)) -> active#(X1), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (active#(U12(X1, X2)) -> active#(X1), active#(U41(tt(), M, N)) -> plus#(N, M)) (active#(U12(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> and#(active(X1), X2)) (active#(U12(X1, X2)) -> active#(X1), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (active#(U12(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U12(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (active#(U12(X1, X2)) -> active#(X1), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (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#(ok(X1), ok(X2)) -> and#(X1, X2)) (proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2)), plus#(X1, mark(X2)) -> plus#(X1, X2)) (proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2)), plus#(mark(X1), X2) -> plus#(X1, X2)) (proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2)), plus#(ok(X1), ok(X2)) -> plus#(X1, X2)) (proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2)), U21#(mark(X1), X2) -> U21#(X1, X2)) (proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2)), U21#(ok(X1), ok(X2)) -> U21#(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#(ok(X1), ok(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#(ok(X1), ok(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#(ok(X1), ok(X2)) -> and#(X1, X2)) (active#(U21(tt(), V1)) -> U22#(isNat(V1)), U22#(mark(X)) -> U22#(X)) (active#(U21(tt(), V1)) -> U22#(isNat(V1)), U22#(ok(X)) -> U22#(X)) (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#(ok(X1), ok(X2), ok(X3)) -> U11#(X1, X2, X3)) (top#(ok(X)) -> top#(active(X)), top#(mark(X)) -> proper#(X)) (top#(ok(X)) -> top#(active(X)), top#(mark(X)) -> top#(proper(X))) (top#(ok(X)) -> top#(active(X)), top#(ok(X)) -> active#(X)) (top#(ok(X)) -> top#(active(X)), top#(ok(X)) -> top#(active(X))) (proper#(isNatKind(X)) -> isNatKind#(proper(X)), isNatKind#(ok(X)) -> isNatKind#(X)) (proper#(U22(X)) -> U22#(proper(X)), U22#(mark(X)) -> U22#(X)) (proper#(U22(X)) -> U22#(proper(X)), U22#(ok(X)) -> U22#(X)) (proper#(isNat(X)) -> isNat#(proper(X)), isNat#(ok(X)) -> isNat#(X)) (active#(U22(X)) -> U22#(active(X)), U22#(mark(X)) -> U22#(X)) (active#(U22(X)) -> U22#(active(X)), U22#(ok(X)) -> U22#(X)) (top#(ok(X)) -> active#(X), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (top#(ok(X)) -> active#(X), active#(U12(X1, X2)) -> active#(X1)) (top#(ok(X)) -> active#(X), active#(U12(tt(), V2)) -> isNat#(V2)) (top#(ok(X)) -> active#(X), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (top#(ok(X)) -> active#(X), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (top#(ok(X)) -> active#(X), active#(isNat(s(V1))) -> isNatKind#(V1)) (top#(ok(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (top#(ok(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (top#(ok(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (top#(ok(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (top#(ok(X)) -> active#(X), active#(U11(X1, X2, X3)) -> active#(X1)) (top#(ok(X)) -> active#(X), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (top#(ok(X)) -> active#(X), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (top#(ok(X)) -> active#(X), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (top#(ok(X)) -> active#(X), active#(U13(X)) -> active#(X)) (top#(ok(X)) -> active#(X), active#(U13(X)) -> U13#(active(X))) (top#(ok(X)) -> active#(X), active#(U22(X)) -> active#(X)) (top#(ok(X)) -> active#(X), active#(U22(X)) -> U22#(active(X))) (top#(ok(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1)) (top#(ok(X)) -> active#(X), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (top#(ok(X)) -> active#(X), active#(U21(tt(), V1)) -> isNat#(V1)) (top#(ok(X)) -> active#(X), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (top#(ok(X)) -> active#(X), active#(U31(X1, X2)) -> active#(X1)) (top#(ok(X)) -> active#(X), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (top#(ok(X)) -> active#(X), active#(s(X)) -> active#(X)) (top#(ok(X)) -> active#(X), active#(s(X)) -> s#(active(X))) (top#(ok(X)) -> active#(X), active#(plus(N, s(M))) -> isNat#(N)) (top#(ok(X)) -> active#(X), active#(plus(N, s(M))) -> isNat#(M)) (top#(ok(X)) -> active#(X), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (top#(ok(X)) -> active#(X), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (top#(ok(X)) -> active#(X), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (top#(ok(X)) -> active#(X), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (top#(ok(X)) -> active#(X), active#(plus(N, s(M))) -> isNatKind#(N)) (top#(ok(X)) -> active#(X), active#(plus(N, s(M))) -> isNatKind#(M)) (top#(ok(X)) -> active#(X), active#(plus(N, 0())) -> isNat#(N)) (top#(ok(X)) -> active#(X), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (top#(ok(X)) -> active#(X), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (top#(ok(X)) -> active#(X), active#(plus(N, 0())) -> isNatKind#(N)) (top#(ok(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)) (top#(ok(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X2)) (top#(ok(X)) -> active#(X), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (top#(ok(X)) -> active#(X), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (top#(ok(X)) -> active#(X), active#(U41(X1, X2, X3)) -> active#(X1)) (top#(ok(X)) -> active#(X), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (top#(ok(X)) -> active#(X), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (top#(ok(X)) -> active#(X), active#(U41(tt(), M, N)) -> plus#(N, M)) (top#(ok(X)) -> active#(X), active#(and(X1, X2)) -> active#(X1)) (top#(ok(X)) -> active#(X), active#(and(X1, X2)) -> and#(active(X1), X2)) (top#(ok(X)) -> active#(X), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (top#(ok(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (top#(ok(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (top#(ok(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (proper#(isNatKind(X)) -> proper#(X), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(isNatKind(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(isNatKind(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(isNatKind(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(isNatKind(X)) -> proper#(X), proper#(U13(X)) -> U13#(proper(X))) (proper#(isNatKind(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(U22(X)) -> U22#(proper(X))) (proper#(isNatKind(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(isNatKind(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(isNatKind(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(s(X)) -> s#(proper(X))) (proper#(isNatKind(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(isNatKind(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(isNatKind(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(isNatKind(X)) -> proper#(X), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(isNatKind(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(isNatKind(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(U22(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U13(X)) -> U13#(proper(X))) (proper#(U22(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> U22#(proper(X))) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> s#(proper(X))) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(U22(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(U22(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> U12#(proper(X1), proper(X2))) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(isNat(X)) -> isNat#(proper(X))) (proper#(isNat(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> U11#(proper(X1), proper(X2), proper(X3))) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(U13(X)) -> U13#(proper(X))) (proper#(isNat(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U22(X)) -> U22#(proper(X))) (proper#(isNat(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U21(X1, X2)) -> U21#(proper(X1), proper(X2))) (proper#(isNat(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> U31#(proper(X1), proper(X2))) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(s(X)) -> s#(proper(X))) (proper#(isNat(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> plus#(proper(X1), proper(X2))) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> U41#(proper(X1), proper(X2), proper(X3))) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(and(X1, X2)) -> and#(proper(X1), proper(X2))) (proper#(isNat(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(isNatKind(X)) -> isNatKind#(proper(X))) (proper#(isNat(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (s#(ok(X)) -> s#(X), s#(mark(X)) -> s#(X)) (s#(ok(X)) -> s#(X), s#(ok(X)) -> s#(X)) (U22#(ok(X)) -> U22#(X), U22#(mark(X)) -> U22#(X)) (U22#(ok(X)) -> U22#(X), U22#(ok(X)) -> U22#(X)) (U13#(ok(X)) -> U13#(X), U13#(mark(X)) -> U13#(X)) (U13#(ok(X)) -> U13#(X), U13#(ok(X)) -> U13#(X)) (active#(s(X)) -> active#(X), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (active#(s(X)) -> active#(X), active#(U12(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U12(tt(), V2)) -> isNat#(V2)) (active#(s(X)) -> active#(X), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (active#(s(X)) -> active#(X), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (active#(s(X)) -> active#(X), active#(isNat(s(V1))) -> isNatKind#(V1)) (active#(s(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (active#(s(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(s(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (active#(s(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (active#(s(X)) -> active#(X), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (active#(s(X)) -> active#(X), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (active#(s(X)) -> active#(X), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (active#(s(X)) -> active#(X), active#(U13(X)) -> active#(X)) (active#(s(X)) -> active#(X), active#(U13(X)) -> U13#(active(X))) (active#(s(X)) -> active#(X), active#(U22(X)) -> active#(X)) (active#(s(X)) -> active#(X), active#(U22(X)) -> U22#(active(X))) (active#(s(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (active#(s(X)) -> active#(X), active#(U21(tt(), V1)) -> isNat#(V1)) (active#(s(X)) -> active#(X), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (active#(s(X)) -> active#(X), active#(U31(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (active#(s(X)) -> active#(X), active#(s(X)) -> active#(X)) (active#(s(X)) -> active#(X), active#(s(X)) -> s#(active(X))) (active#(s(X)) -> active#(X), active#(plus(N, s(M))) -> isNat#(N)) (active#(s(X)) -> active#(X), active#(plus(N, s(M))) -> isNat#(M)) (active#(s(X)) -> active#(X), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (active#(s(X)) -> active#(X), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (active#(s(X)) -> active#(X), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (active#(s(X)) -> active#(X), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (active#(s(X)) -> active#(X), active#(plus(N, s(M))) -> isNatKind#(N)) (active#(s(X)) -> active#(X), active#(plus(N, s(M))) -> isNatKind#(M)) (active#(s(X)) -> active#(X), active#(plus(N, 0())) -> isNat#(N)) (active#(s(X)) -> active#(X), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (active#(s(X)) -> active#(X), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (active#(s(X)) -> active#(X), active#(plus(N, 0())) -> isNatKind#(N)) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X2)) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (active#(s(X)) -> active#(X), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (active#(s(X)) -> active#(X), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (active#(s(X)) -> active#(X), active#(U41(tt(), M, N)) -> plus#(N, M)) (active#(s(X)) -> active#(X), active#(and(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(and(X1, X2)) -> and#(active(X1), X2)) (active#(s(X)) -> active#(X), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (active#(s(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(s(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (active#(s(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (active#(U13(X)) -> active#(X), active#(U12(X1, X2)) -> U12#(active(X1), X2)) (active#(U13(X)) -> active#(X), active#(U12(X1, X2)) -> active#(X1)) (active#(U13(X)) -> active#(X), active#(U12(tt(), V2)) -> isNat#(V2)) (active#(U13(X)) -> active#(X), active#(U12(tt(), V2)) -> U13#(isNat(V2))) (active#(U13(X)) -> active#(X), active#(isNat(s(V1))) -> U21#(isNatKind(V1), V1)) (active#(U13(X)) -> active#(X), active#(isNat(s(V1))) -> isNatKind#(V1)) (active#(U13(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> U11#(and(isNatKind(V1), isNatKind(V2)), V1, V2)) (active#(U13(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U13(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> isNatKind#(V1)) (active#(U13(X)) -> active#(X), active#(isNat(plus(V1, V2))) -> isNatKind#(V2)) (active#(U13(X)) -> active#(X), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U13(X)) -> active#(X), active#(U11(X1, X2, X3)) -> U11#(active(X1), X2, X3)) (active#(U13(X)) -> active#(X), active#(U11(tt(), V1, V2)) -> U12#(isNat(V1), V2)) (active#(U13(X)) -> active#(X), active#(U11(tt(), V1, V2)) -> isNat#(V1)) (active#(U13(X)) -> active#(X), active#(U13(X)) -> active#(X)) (active#(U13(X)) -> active#(X), active#(U13(X)) -> U13#(active(X))) (active#(U13(X)) -> active#(X), active#(U22(X)) -> active#(X)) (active#(U13(X)) -> active#(X), active#(U22(X)) -> U22#(active(X))) (active#(U13(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1)) (active#(U13(X)) -> active#(X), active#(U21(X1, X2)) -> U21#(active(X1), X2)) (active#(U13(X)) -> active#(X), active#(U21(tt(), V1)) -> isNat#(V1)) (active#(U13(X)) -> active#(X), active#(U21(tt(), V1)) -> U22#(isNat(V1))) (active#(U13(X)) -> active#(X), active#(U31(X1, X2)) -> active#(X1)) (active#(U13(X)) -> active#(X), active#(U31(X1, X2)) -> U31#(active(X1), X2)) (active#(U13(X)) -> active#(X), active#(s(X)) -> active#(X)) (active#(U13(X)) -> active#(X), active#(s(X)) -> s#(active(X))) (active#(U13(X)) -> active#(X), active#(plus(N, s(M))) -> isNat#(N)) (active#(U13(X)) -> active#(X), active#(plus(N, s(M))) -> isNat#(M)) (active#(U13(X)) -> active#(X), active#(plus(N, s(M))) -> U41#(and(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N))), M, N)) (active#(U13(X)) -> active#(X), active#(plus(N, s(M))) -> and#(isNat(N), isNatKind(N))) (active#(U13(X)) -> active#(X), active#(plus(N, s(M))) -> and#(isNat(M), isNatKind(M))) (active#(U13(X)) -> active#(X), active#(plus(N, s(M))) -> and#(and(isNat(M), isNatKind(M)), and(isNat(N), isNatKind(N)))) (active#(U13(X)) -> active#(X), active#(plus(N, s(M))) -> isNatKind#(N)) (active#(U13(X)) -> active#(X), active#(plus(N, s(M))) -> isNatKind#(M)) (active#(U13(X)) -> active#(X), active#(plus(N, 0())) -> isNat#(N)) (active#(U13(X)) -> active#(X), active#(plus(N, 0())) -> U31#(and(isNat(N), isNatKind(N)), N)) (active#(U13(X)) -> active#(X), active#(plus(N, 0())) -> and#(isNat(N), isNatKind(N))) (active#(U13(X)) -> active#(X), active#(plus(N, 0())) -> isNatKind#(N)) (active#(U13(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)) (active#(U13(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X2)) (active#(U13(X)) -> active#(X), active#(plus(X1, X2)) -> plus#(X1, active(X2))) (active#(U13(X)) -> active#(X), active#(plus(X1, X2)) -> plus#(active(X1), X2)) (active#(U13(X)) -> active#(X), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U13(X)) -> active#(X), active#(U41(X1, X2, X3)) -> U41#(active(X1), X2, X3)) (active#(U13(X)) -> active#(X), active#(U41(tt(), M, N)) -> s#(plus(N, M))) (active#(U13(X)) -> active#(X), active#(U41(tt(), M, N)) -> plus#(N, M)) (active#(U13(X)) -> active#(X), active#(and(X1, X2)) -> active#(X1)) (active#(U13(X)) -> active#(X), active#(and(X1, X2)) -> and#(active(X1), X2)) (active#(U13(X)) -> active#(X), active#(isNatKind(s(V1))) -> isNatKind#(V1)) (active#(U13(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> and#(isNatKind(V1), isNatKind(V2))) (active#(U13(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V1)) (active#(U13(X)) -> active#(X), active#(isNatKind(plus(V1, V2))) -> isNatKind#(V2)) (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#(ok(X1), ok(X2), ok(X3)) -> U41#(X1, X2, X3)) } SCCS: Scc: {top#(mark(X)) -> top#(proper(X)), top#(ok(X)) -> top#(active(X))} Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)} Scc: {isNatKind#(ok(X)) -> isNatKind#(X)} Scc: { and#(mark(X1), X2) -> and#(X1, X2), and#(ok(X1), ok(X2)) -> and#(X1, X2)} Scc: { U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(ok(X1), ok(X2), ok(X3)) -> U41#(X1, X2, X3)} Scc: { plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2), plus#(ok(X1), ok(X2)) -> plus#(X1, X2)} Scc: {s#(mark(X)) -> s#(X), s#(ok(X)) -> s#(X)} Scc: { U31#(mark(X1), X2) -> U31#(X1, X2), U31#(ok(X1), ok(X2)) -> U31#(X1, X2)} Scc: { U21#(mark(X1), X2) -> U21#(X1, X2), U21#(ok(X1), ok(X2)) -> U21#(X1, X2)} Scc: {U22#(mark(X)) -> U22#(X), U22#(ok(X)) -> U22#(X)} Scc: {U13#(mark(X)) -> U13#(X), U13#(ok(X)) -> U13#(X)} Scc: { U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(ok(X1), ok(X2), ok(X3)) -> U11#(X1, X2, X3)} Scc: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U13(X)) -> active#(X), active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(U41(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)} Scc: {isNat#(ok(X)) -> isNat#(X)} Scc: { U12#(mark(X1), X2) -> U12#(X1, X2), U12#(ok(X1), ok(X2)) -> U12#(X1, X2)} SCC: Strict: {top#(mark(X)) -> top#(proper(X)), top#(ok(X)) -> top#(active(X))} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} Fail SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)} EDG: { (proper#(U13(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(isNatKind(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNatKind(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(isNatKind(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(isNatKind(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) } SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)} EDG: { (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(isNatKind(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(isNatKind(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(isNatKind(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(isNatKind(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(isNatKind(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(isNatKind(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNatKind(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(isNatKind(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNatKind(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)) } SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1), proper#(isNatKind(X)) -> proper#(X)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1)} EDG: { (proper#(U13(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(and(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(and(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(and(X1, X2)) -> proper#(X1)) } SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(and(X1, X2)) -> proper#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)} EDG: { (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X3)) } SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X3)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: { (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) } SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: { (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(isNat(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(isNat(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(isNat(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(isNat(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(isNat(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(isNat(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) } SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(isNat(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: { (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) } SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: { (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(plus(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) } SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(plus(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: { (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U13(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U13(X)) -> proper#(X), proper#(U13(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U13(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U13(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U13(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) } SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U13(X)) -> proper#(X), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: {(proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(s(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(s(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(s(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(s(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2))} SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(s(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: {(proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2))} SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: {(proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2))} SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: {(proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U31(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2))} SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U31(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: {(proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U21(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U21(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2))} SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U21(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: {(proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X1), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X1)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2))} SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X1), proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: {(proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U22(X)) -> proper#(X)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U22(X)) -> proper#(X), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U22(X)) -> proper#(X), proper#(U22(X)) -> proper#(X)) (proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2))} SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U22(X)) -> proper#(X), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: {(proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2))} SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: {(proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U11(X1, X2, X3)) -> proper#(X3)) (proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2))} SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U11(X1, X2, X3)) -> proper#(X3), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: {(proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)) (proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U12(X1, X2)) -> proper#(X2)) (proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2))} SCCS: Scc: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: { proper#(U12(X1, X2)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: {proper#(U41(X1, X2, X3)) -> proper#(X2)} EDG: {(proper#(U41(X1, X2, X3)) -> proper#(X2), proper#(U41(X1, X2, X3)) -> proper#(X2))} SCCS: Scc: {proper#(U41(X1, X2, X3)) -> proper#(X2)} SCC: Strict: {proper#(U41(X1, X2, X3)) -> proper#(X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(proper#) = 0 Strict: {} Qed SCC: Strict: {isNatKind#(ok(X)) -> isNatKind#(X)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(isNatKind#) = 0 Strict: {} Qed SCC: Strict: { and#(mark(X1), X2) -> and#(X1, X2), and#(ok(X1), ok(X2)) -> and#(X1, X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(and#) = 0 Strict: {and#(mark(X1), X2) -> and#(X1, X2)} EDG: {(and#(mark(X1), X2) -> and#(X1, X2), and#(mark(X1), X2) -> and#(X1, X2))} SCCS: Scc: {and#(mark(X1), X2) -> and#(X1, X2)} SCC: Strict: {and#(mark(X1), X2) -> and#(X1, X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(and#) = 0 Strict: {} Qed SCC: Strict: { U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(ok(X1), ok(X2), ok(X3)) -> U41#(X1, X2, X3)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U41#) = 0 Strict: {U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)} EDG: {(U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3), U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3))} SCCS: Scc: {U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)} SCC: Strict: {U41#(mark(X1), X2, X3) -> U41#(X1, X2, X3)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U41#) = 0 Strict: {} Qed SCC: Strict: { plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2), plus#(ok(X1), ok(X2)) -> plus#(X1, X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(plus#) = 1 Strict: {plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)} EDG: {(plus#(mark(X1), 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, mark(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2))} SCCS: Scc: {plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)} SCC: Strict: {plus#(X1, mark(X2)) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(plus#) = 1 Strict: {plus#(mark(X1), X2) -> plus#(X1, X2)} EDG: {(plus#(mark(X1), X2) -> plus#(X1, X2), plus#(mark(X1), X2) -> plus#(X1, X2))} SCCS: Scc: {plus#(mark(X1), X2) -> plus#(X1, X2)} SCC: Strict: {plus#(mark(X1), X2) -> plus#(X1, X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(plus#) = 0 Strict: {} Qed SCC: Strict: {s#(mark(X)) -> s#(X), s#(ok(X)) -> s#(X)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(s#) = 0 Strict: {s#(ok(X)) -> s#(X)} EDG: {(s#(ok(X)) -> s#(X), s#(ok(X)) -> s#(X))} SCCS: Scc: {s#(ok(X)) -> s#(X)} SCC: Strict: {s#(ok(X)) -> s#(X)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(s#) = 0 Strict: {} Qed SCC: Strict: { U31#(mark(X1), X2) -> U31#(X1, X2), U31#(ok(X1), ok(X2)) -> U31#(X1, X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(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: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U31#) = 0 Strict: {} Qed SCC: Strict: { U21#(mark(X1), X2) -> U21#(X1, X2), U21#(ok(X1), ok(X2)) -> U21#(X1, X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U21#) = 0 Strict: {U21#(mark(X1), X2) -> U21#(X1, X2)} EDG: {(U21#(mark(X1), X2) -> U21#(X1, X2), U21#(mark(X1), X2) -> U21#(X1, X2))} SCCS: Scc: {U21#(mark(X1), X2) -> U21#(X1, X2)} SCC: Strict: {U21#(mark(X1), X2) -> U21#(X1, X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U21#) = 0 Strict: {} Qed SCC: Strict: {U22#(mark(X)) -> U22#(X), U22#(ok(X)) -> U22#(X)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U22#) = 0 Strict: {U22#(mark(X)) -> U22#(X)} EDG: {(U22#(mark(X)) -> U22#(X), U22#(mark(X)) -> U22#(X))} SCCS: Scc: {U22#(mark(X)) -> U22#(X)} SCC: Strict: {U22#(mark(X)) -> U22#(X)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U22#) = 0 Strict: {} Qed SCC: Strict: {U13#(mark(X)) -> U13#(X), U13#(ok(X)) -> U13#(X)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U13#) = 0 Strict: {U13#(ok(X)) -> U13#(X)} EDG: {(U13#(ok(X)) -> U13#(X), U13#(ok(X)) -> U13#(X))} SCCS: Scc: {U13#(ok(X)) -> U13#(X)} SCC: Strict: {U13#(ok(X)) -> U13#(X)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U13#) = 0 Strict: {} Qed SCC: Strict: { U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(ok(X1), ok(X2), ok(X3)) -> U11#(X1, X2, X3)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U11#) = 0 Strict: {U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)} EDG: {(U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3), U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3))} SCCS: Scc: {U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)} SCC: Strict: {U11#(mark(X1), X2, X3) -> U11#(X1, X2, X3)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U11#) = 0 Strict: {} Qed SCC: Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U13(X)) -> active#(X), active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(U41(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(active#) = 0 Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(U41(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)} EDG: {(active#(s(X)) -> active#(X), active#(and(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X2)) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(s(X)) -> active#(X)) (active#(s(X)) -> active#(X), active#(U31(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U22(X)) -> active#(X)) (active#(s(X)) -> active#(X), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U12(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U31(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U31(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U41(X1, X2, X3)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(and(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(X1, X2)) -> active#(X2)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(s(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X2), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U22(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X2), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U12(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(and(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(and(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(and(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(plus(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U21(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U21(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U12(X1, X2)) -> active#(X1), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U12(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U22(X)) -> active#(X)) (active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U31(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(s(X)) -> active#(X)) (active#(U22(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X2)) (active#(U22(X)) -> active#(X), active#(U41(X1, X2, X3)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(and(X1, X2)) -> active#(X1))} SCCS: Scc: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(U41(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)} SCC: Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(U41(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(active#) = 0 Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(and(X1, X2)) -> active#(X1)} EDG: {(active#(s(X)) -> active#(X), active#(and(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X2)) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(s(X)) -> active#(X)) (active#(s(X)) -> active#(X), active#(U31(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U22(X)) -> active#(X)) (active#(s(X)) -> active#(X), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U12(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U12(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U21(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(and(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(and(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(and(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U31(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U31(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> active#(X)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U22(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X2), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(s(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(X1, X2)) -> active#(X2)) (active#(plus(X1, X2)) -> active#(X2), active#(and(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U12(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U22(X)) -> active#(X)) (active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(U31(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(s(X)) -> active#(X)) (active#(U22(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)) (active#(U22(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X2)) (active#(U22(X)) -> active#(X), active#(and(X1, X2)) -> active#(X1))} SCCS: Scc: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(and(X1, X2)) -> active#(X1)} SCC: Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U22(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(and(X1, X2)) -> active#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(active#) = 0 Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(and(X1, X2)) -> active#(X1)} EDG: {(active#(plus(X1, X2)) -> active#(X2), active#(and(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(X1, X2)) -> active#(X2)) (active#(plus(X1, X2)) -> active#(X2), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(s(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X2), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X2), active#(U12(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U31(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(and(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(and(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(plus(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U21(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2)) (active#(U12(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U12(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U31(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(s(X)) -> active#(X)) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X2)) (active#(s(X)) -> active#(X), active#(and(X1, X2)) -> active#(X1))} SCCS: Scc: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(and(X1, X2)) -> active#(X1)} SCC: Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X2), active#(and(X1, X2)) -> active#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(active#) = 0 Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)} EDG: {(active#(U11(X1, X2, X3)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U31(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(and(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(and(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U12(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U31(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(s(X)) -> active#(X)) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(and(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1))} SCCS: Scc: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)} SCC: Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1), active#(and(X1, X2)) -> active#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(active#) = 0 Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)} EDG: {(active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U12(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(plus(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(s(X)) -> active#(X)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U12(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U21(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(U31(X1, X2)) -> active#(X1)) (active#(s(X)) -> active#(X), active#(s(X)) -> active#(X)) (active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1))} SCCS: Scc: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)} SCC: Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(s(X)) -> active#(X), active#(plus(X1, X2)) -> active#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(active#) = 0 Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} EDG: {(active#(U11(X1, X2, X3)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U11(X1, X2, X3)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1))} SCCS: Scc: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} SCC: Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U11(X1, X2, X3)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(active#) = 0 Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} EDG: {(active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1))} SCCS: Scc: { active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} SCC: Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(U31(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(active#) = 0 Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} EDG: {(active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U21(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1))} SCCS: Scc: { active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} SCC: Strict: { active#(U12(X1, X2)) -> active#(X1), active#(U21(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(active#) = 0 Strict: { active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} EDG: {(active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)) (active#(plus(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(U12(X1, X2)) -> active#(X1)) (active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1))} SCCS: Scc: { active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} SCC: Strict: { active#(U12(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(active#) = 0 Strict: {active#(plus(X1, X2)) -> active#(X1)} EDG: {(active#(plus(X1, X2)) -> active#(X1), active#(plus(X1, X2)) -> active#(X1))} SCCS: Scc: {active#(plus(X1, X2)) -> active#(X1)} SCC: Strict: {active#(plus(X1, X2)) -> active#(X1)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(active#) = 0 Strict: {} Qed SCC: Strict: {isNat#(ok(X)) -> isNat#(X)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(isNat#) = 0 Strict: {} Qed SCC: Strict: { U12#(mark(X1), X2) -> U12#(X1, X2), U12#(ok(X1), ok(X2)) -> U12#(X1, X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U12#) = 0 Strict: {U12#(mark(X1), X2) -> U12#(X1, X2)} EDG: {(U12#(mark(X1), X2) -> U12#(X1, X2), U12#(mark(X1), X2) -> U12#(X1, X2))} SCCS: Scc: {U12#(mark(X1), X2) -> U12#(X1, X2)} SCC: Strict: {U12#(mark(X1), X2) -> U12#(X1, X2)} Weak: { U12(mark(X1), X2) -> mark(U12(X1, X2)), U12(ok(X1), ok(X2)) -> ok(U12(X1, X2)), isNat(ok(X)) -> ok(isNat(X)), active(U12(X1, X2)) -> U12(active(X1), X2), 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(X1, X2, X3)) -> U11(active(X1), X2, X3), active(U11(tt(), V1, V2)) -> mark(U12(isNat(V1), V2)), active(U13(X)) -> U13(active(X)), active(U13(tt())) -> mark(tt()), active(U22(X)) -> U22(active(X)), active(U22(tt())) -> mark(tt()), active(U21(X1, X2)) -> U21(active(X1), X2), active(U21(tt(), V1)) -> mark(U22(isNat(V1))), active(U31(X1, X2)) -> U31(active(X1), X2), active(U31(tt(), N)) -> mark(N), active(s(X)) -> s(active(X)), 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(plus(X1, X2)) -> plus(X1, active(X2)), active(plus(X1, X2)) -> plus(active(X1), X2), active(U41(X1, X2, X3)) -> U41(active(X1), X2, X3), active(U41(tt(), M, N)) -> mark(s(plus(N, M))), active(and(X1, X2)) -> and(active(X1), X2), 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(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)), U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)), U13(mark(X)) -> mark(U13(X)), U13(ok(X)) -> ok(U13(X)), U22(mark(X)) -> mark(U22(X)), U22(ok(X)) -> ok(U22(X)), U21(mark(X1), X2) -> mark(U21(X1, X2)), U21(ok(X1), ok(X2)) -> ok(U21(X1, X2)), U31(mark(X1), X2) -> mark(U31(X1, X2)), U31(ok(X1), ok(X2)) -> ok(U31(X1, X2)), s(mark(X)) -> mark(s(X)), s(ok(X)) -> ok(s(X)), plus(X1, mark(X2)) -> mark(plus(X1, X2)), plus(mark(X1), X2) -> mark(plus(X1, X2)), plus(ok(X1), ok(X2)) -> ok(plus(X1, X2)), U41(mark(X1), X2, X3) -> mark(U41(X1, X2, X3)), U41(ok(X1), ok(X2), ok(X3)) -> ok(U41(X1, X2, X3)), and(mark(X1), X2) -> mark(and(X1, X2)), and(ok(X1), ok(X2)) -> ok(and(X1, X2)), isNatKind(ok(X)) -> ok(isNatKind(X)), proper(U12(X1, X2)) -> U12(proper(X1), proper(X2)), proper(isNat(X)) -> isNat(proper(X)), proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)), proper(tt()) -> ok(tt()), proper(U13(X)) -> U13(proper(X)), proper(U22(X)) -> U22(proper(X)), proper(U21(X1, X2)) -> U21(proper(X1), proper(X2)), proper(U31(X1, X2)) -> U31(proper(X1), proper(X2)), proper(s(X)) -> s(proper(X)), proper(plus(X1, X2)) -> plus(proper(X1), proper(X2)), proper(U41(X1, X2, X3)) -> U41(proper(X1), proper(X2), proper(X3)), proper(and(X1, X2)) -> and(proper(X1), proper(X2)), proper(0()) -> ok(0()), proper(isNatKind(X)) -> isNatKind(proper(X)), top(mark(X)) -> top(proper(X)), top(ok(X)) -> top(active(X))} SPSC: Simple Projection: pi(U12#) = 0 Strict: {} Qed