YES Time: 6.063684 TRS: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} DP: DP: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2), mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3), mark# tt() -> active# tt(), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U13 X -> U13# mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U22 X -> U22# mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# U21(X1, X2) -> U21#(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2), mark# U31(X1, X2) -> U31#(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# s X -> s# mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# plus(X1, X2) -> plus#(mark X1, mark X2), mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# and(X1, X2) -> and#(mark X1, X2), mark# 0() -> active# 0(), mark# isNatKind X -> active# isNatKind X, U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2), isNat# mark X -> isNat# X, isNat# active X -> isNat# X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U12(tt(), V2) -> isNat# V2, active# U12(tt(), V2) -> U13# isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat s V1 -> U21#(isNatKind V1, V1), active# isNat s V1 -> isNatKind# V1, active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2), active# isNat plus(V1, V2) -> isNatKind# V1, active# isNat plus(V1, V2) -> isNatKind# V2, active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U11(tt(), V1, V2) -> U12#(isNat V1, V2), active# U11(tt(), V1, V2) -> isNat# V1, active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# U21(tt(), V1) -> isNat# V1, active# U21(tt(), V1) -> U22# isNat V1, active# U31(tt(), N) -> mark# N, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# plus(N, s M) -> isNat# N, active# plus(N, s M) -> isNat# M, active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# plus(N, s M) -> and#(isNat N, isNatKind N), active# plus(N, s M) -> and#(isNat M, isNatKind M), active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), active# plus(N, s M) -> isNatKind# N, active# plus(N, s M) -> isNatKind# M, active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), active# plus(N, 0()) -> isNat# N, active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N), active# plus(N, 0()) -> and#(isNat N, isNatKind N), active# plus(N, 0()) -> isNatKind# N, active# U41(tt(), M, N) -> mark# s plus(N, M), active# U41(tt(), M, N) -> s# plus(N, M), active# U41(tt(), M, N) -> plus#(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind s V1 -> isNatKind# V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2), active# isNatKind plus(V1, V2) -> isNatKind# V1, active# isNatKind plus(V1, V2) -> isNatKind# V2, active# isNatKind 0() -> mark# tt(), U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(active X1, X2, X3) -> U11#(X1, X2, X3), U13# mark X -> U13# X, U13# active X -> U13# X, U22# mark X -> U22# X, U22# active X -> U22# X, U21#(X1, mark X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2), U21#(active X1, X2) -> U21#(X1, X2), U31#(X1, mark X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2), U31#(active X1, X2) -> U31#(X1, X2), s# mark X -> s# X, s# active X -> s# X, plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3), and#(X1, mark X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2), and#(active X1, X2) -> and#(X1, X2), isNatKind# mark X -> isNatKind# X, isNatKind# active X -> isNatKind# X} TRS: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} EDG: { (mark# U21(X1, X2) -> U21#(mark X1, X2), U21#(active X1, X2) -> U21#(X1, X2)) (mark# U21(X1, X2) -> U21#(mark X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)) (mark# U21(X1, X2) -> U21#(mark X1, X2), U21#(X1, active X2) -> U21#(X1, X2)) (mark# U21(X1, X2) -> U21#(mark X1, X2), U21#(X1, mark X2) -> U21#(X1, X2)) (mark# and(X1, X2) -> and#(mark X1, X2), and#(active X1, X2) -> and#(X1, X2)) (mark# and(X1, X2) -> and#(mark X1, X2), and#(mark X1, X2) -> and#(X1, X2)) (mark# and(X1, X2) -> and#(mark X1, X2), and#(X1, active X2) -> and#(X1, X2)) (mark# and(X1, X2) -> and#(mark X1, X2), and#(X1, mark X2) -> and#(X1, X2)) (active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2), and#(active X1, X2) -> and#(X1, X2)) (active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2), and#(mark X1, X2) -> and#(X1, X2)) (active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2), and#(X1, active X2) -> and#(X1, X2)) (active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2), and#(X1, mark X2) -> and#(X1, X2)) (active# plus(N, s M) -> and#(isNat M, isNatKind M), and#(active X1, X2) -> and#(X1, X2)) (active# plus(N, s M) -> and#(isNat M, isNatKind M), and#(mark X1, X2) -> and#(X1, X2)) (active# plus(N, s M) -> and#(isNat M, isNatKind M), and#(X1, active X2) -> and#(X1, X2)) (active# plus(N, s M) -> and#(isNat M, isNatKind M), and#(X1, mark X2) -> and#(X1, X2)) (active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2), and#(active X1, X2) -> and#(X1, X2)) (active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2), and#(mark X1, X2) -> and#(X1, X2)) (active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2), and#(X1, active X2) -> and#(X1, X2)) (active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2), and#(X1, mark X2) -> and#(X1, X2)) (U12#(X1, active X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)) (U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)) (U12#(X1, active X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)) (U12#(X1, active X2) -> U12#(X1, X2), U12#(X1, mark X2) -> U12#(X1, X2)) (U12#(active X1, X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)) (U12#(active X1, X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)) (U12#(active X1, X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)) (U12#(active X1, X2) -> U12#(X1, X2), U12#(X1, mark X2) -> U12#(X1, X2)) (U21#(X1, active X2) -> U21#(X1, X2), U21#(active X1, X2) -> U21#(X1, X2)) (U21#(X1, active X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)) (U21#(X1, active X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2)) (U21#(X1, active X2) -> U21#(X1, X2), U21#(X1, mark X2) -> U21#(X1, X2)) (U21#(active X1, X2) -> U21#(X1, X2), U21#(active X1, X2) -> U21#(X1, X2)) (U21#(active X1, X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)) (U21#(active X1, X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2)) (U21#(active X1, X2) -> U21#(X1, X2), U21#(X1, mark X2) -> U21#(X1, X2)) (U31#(X1, active X2) -> U31#(X1, X2), U31#(active X1, X2) -> U31#(X1, X2)) (U31#(X1, active X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)) (U31#(X1, active X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2)) (U31#(X1, active X2) -> U31#(X1, X2), U31#(X1, mark X2) -> U31#(X1, X2)) (U31#(active X1, X2) -> U31#(X1, X2), U31#(active X1, X2) -> U31#(X1, X2)) (U31#(active X1, X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)) (U31#(active X1, X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2)) (U31#(active X1, X2) -> U31#(X1, X2), U31#(X1, mark X2) -> U31#(X1, X2)) (plus#(X1, active X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)) (plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (plus#(X1, active X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)) (plus#(X1, active X2) -> plus#(X1, X2), plus#(X1, mark X2) -> plus#(X1, X2)) (plus#(active X1, X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)) (plus#(active X1, X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (plus#(active X1, X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)) (plus#(active X1, X2) -> plus#(X1, X2), plus#(X1, mark X2) -> plus#(X1, X2)) (and#(X1, active X2) -> and#(X1, X2), and#(active X1, X2) -> and#(X1, X2)) (and#(X1, active X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2)) (and#(X1, active X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2)) (and#(X1, active X2) -> and#(X1, X2), and#(X1, mark X2) -> and#(X1, X2)) (and#(active X1, X2) -> and#(X1, X2), and#(active X1, X2) -> and#(X1, X2)) (and#(active X1, X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2)) (and#(active X1, X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2)) (and#(active X1, X2) -> and#(X1, X2), and#(X1, mark X2) -> and#(X1, X2)) (active# U12(tt(), V2) -> isNat# V2, isNat# active X -> isNat# X) (active# U12(tt(), V2) -> isNat# V2, isNat# mark X -> isNat# X) (active# isNatKind plus(V1, V2) -> isNatKind# V2, isNatKind# active X -> isNatKind# X) (active# isNatKind plus(V1, V2) -> isNatKind# V2, isNatKind# mark X -> isNatKind# X) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind 0() -> mark# tt()) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# and(tt(), X) -> mark# X) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U41(tt(), M, N) -> plus#(N, M)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U41(tt(), M, N) -> s# plus(N, M)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, 0()) -> isNatKind# N) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, 0()) -> isNat# N) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, s M) -> isNatKind# M) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, s M) -> isNatKind# N) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, s M) -> isNat# M) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, s M) -> isNat# N) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U31(tt(), N) -> mark# N) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U21(tt(), V1) -> isNat# V1) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U22 tt() -> mark# tt()) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U13 tt() -> mark# tt()) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U11(tt(), V1, V2) -> isNat# V1) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat 0() -> mark# tt()) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat plus(V1, V2) -> isNatKind# V2) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat plus(V1, V2) -> isNatKind# V1) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat s V1 -> isNatKind# V1) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U12(tt(), V2) -> U13# isNat V2) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U12(tt(), V2) -> isNat# V2) (mark# U21(X1, X2) -> active# U21(mark X1, X2), active# U12(tt(), V2) -> mark# U13 isNat V2) (mark# plus(X1, X2) -> mark# X2, mark# isNatKind X -> active# isNatKind X) (mark# plus(X1, X2) -> mark# X2, mark# 0() -> active# 0()) (mark# plus(X1, X2) -> mark# X2, mark# and(X1, X2) -> and#(mark X1, X2)) (mark# plus(X1, X2) -> mark# X2, mark# and(X1, X2) -> active# and(mark X1, X2)) (mark# plus(X1, X2) -> mark# X2, mark# and(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (mark# plus(X1, X2) -> mark# X2, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (mark# plus(X1, X2) -> mark# X2, mark# U41(X1, X2, X3) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# s X -> s# mark X) (mark# plus(X1, X2) -> mark# X2, mark# s X -> active# s mark X) (mark# plus(X1, X2) -> mark# X2, mark# s X -> mark# X) (mark# plus(X1, X2) -> mark# X2, mark# U31(X1, X2) -> U31#(mark X1, X2)) (mark# plus(X1, X2) -> mark# X2, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (mark# plus(X1, X2) -> mark# X2, mark# U31(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# U21(X1, X2) -> U21#(mark X1, X2)) (mark# plus(X1, X2) -> mark# X2, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (mark# plus(X1, X2) -> mark# X2, mark# U21(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# U22 X -> U22# mark X) (mark# plus(X1, X2) -> mark# X2, mark# U22 X -> active# U22 mark X) (mark# plus(X1, X2) -> mark# X2, mark# U22 X -> mark# X) (mark# plus(X1, X2) -> mark# X2, mark# U13 X -> U13# mark X) (mark# plus(X1, X2) -> mark# X2, mark# U13 X -> active# U13 mark X) (mark# plus(X1, X2) -> mark# X2, mark# U13 X -> mark# X) (mark# plus(X1, X2) -> mark# X2, mark# tt() -> active# tt()) (mark# plus(X1, X2) -> mark# X2, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (mark# plus(X1, X2) -> mark# X2, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (mark# plus(X1, X2) -> mark# X2, mark# U11(X1, X2, X3) -> mark# X1) (mark# plus(X1, X2) -> mark# X2, mark# isNat X -> active# isNat X) (mark# plus(X1, X2) -> mark# X2, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# plus(X1, X2) -> mark# X2, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# plus(X1, X2) -> mark# X2, mark# U12(X1, X2) -> mark# X1) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# isNatKind X -> active# isNatKind X) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# 0() -> active# 0()) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# and(X1, X2) -> and#(mark X1, X2)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# and(X1, X2) -> active# and(mark X1, X2)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# and(X1, X2) -> mark# X1) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U41(X1, X2, X3) -> mark# X1) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# plus(X1, X2) -> mark# X2) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# plus(X1, X2) -> mark# X1) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# s X -> s# mark X) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# s X -> active# s mark X) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# s X -> mark# X) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U31(X1, X2) -> mark# X1) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U21(X1, X2) -> mark# X1) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U22 X -> U22# mark X) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U22 X -> active# U22 mark X) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U22 X -> mark# X) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U13 X -> U13# mark X) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U13 X -> active# U13 mark X) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U13 X -> mark# X) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# tt() -> active# tt()) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U11(X1, X2, X3) -> mark# X1) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# isNat X -> active# isNat X) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# isNat s V1 -> mark# U21(isNatKind V1, V1), mark# U12(X1, X2) -> mark# X1) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# isNatKind X -> active# isNatKind X) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# 0() -> active# 0()) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# and(X1, X2) -> and#(mark X1, X2)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# and(X1, X2) -> active# and(mark X1, X2)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# and(X1, X2) -> mark# X1) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U41(X1, X2, X3) -> mark# X1) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# plus(X1, X2) -> mark# X2) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# plus(X1, X2) -> mark# X1) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# s X -> s# mark X) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# s X -> active# s mark X) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# s X -> mark# X) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U31(X1, X2) -> mark# X1) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U21(X1, X2) -> mark# X1) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U22 X -> U22# mark X) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U22 X -> active# U22 mark X) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U22 X -> mark# X) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U13 X -> U13# mark X) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U13 X -> active# U13 mark X) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U13 X -> mark# X) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# tt() -> active# tt()) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U11(X1, X2, X3) -> mark# X1) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# isNat X -> active# isNat X) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), mark# U12(X1, X2) -> mark# X1) (active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2), U11#(active X1, X2, X3) -> U11#(X1, X2, X3)) (active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2), U11#(X1, active X2, X3) -> U11#(X1, X2, X3)) (active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3)) (active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2), U11#(X1, X2, active X3) -> U11#(X1, X2, X3)) (active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2), U11#(X1, X2, mark X3) -> U11#(X1, X2, X3)) (mark# 0() -> active# 0(), active# isNatKind 0() -> mark# tt()) (mark# 0() -> active# 0(), active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# 0() -> active# 0(), active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# 0() -> active# 0(), active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# 0() -> active# 0(), active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# 0() -> active# 0(), active# isNatKind s V1 -> isNatKind# V1) (mark# 0() -> active# 0(), active# isNatKind s V1 -> mark# isNatKind V1) (mark# 0() -> active# 0(), active# and(tt(), X) -> mark# X) (mark# 0() -> active# 0(), active# U41(tt(), M, N) -> plus#(N, M)) (mark# 0() -> active# 0(), active# U41(tt(), M, N) -> s# plus(N, M)) (mark# 0() -> active# 0(), active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# 0() -> active# 0(), active# plus(N, 0()) -> isNatKind# N) (mark# 0() -> active# 0(), active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# 0() -> active# 0(), active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# 0() -> active# 0(), active# plus(N, 0()) -> isNat# N) (mark# 0() -> active# 0(), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# 0() -> active# 0(), active# plus(N, s M) -> isNatKind# M) (mark# 0() -> active# 0(), active# plus(N, s M) -> isNatKind# N) (mark# 0() -> active# 0(), active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# 0() -> active# 0(), active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# 0() -> active# 0(), active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# 0() -> active# 0(), active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# 0() -> active# 0(), active# plus(N, s M) -> isNat# M) (mark# 0() -> active# 0(), active# plus(N, s M) -> isNat# N) (mark# 0() -> active# 0(), active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# 0() -> active# 0(), active# U31(tt(), N) -> mark# N) (mark# 0() -> active# 0(), active# U21(tt(), V1) -> U22# isNat V1) (mark# 0() -> active# 0(), active# U21(tt(), V1) -> isNat# V1) (mark# 0() -> active# 0(), active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# 0() -> active# 0(), active# U22 tt() -> mark# tt()) (mark# 0() -> active# 0(), active# U13 tt() -> mark# tt()) (mark# 0() -> active# 0(), active# U11(tt(), V1, V2) -> isNat# V1) (mark# 0() -> active# 0(), active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# 0() -> active# 0(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# 0() -> active# 0(), active# isNat 0() -> mark# tt()) (mark# 0() -> active# 0(), active# isNat plus(V1, V2) -> isNatKind# V2) (mark# 0() -> active# 0(), active# isNat plus(V1, V2) -> isNatKind# V1) (mark# 0() -> active# 0(), active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# 0() -> active# 0(), active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# 0() -> active# 0(), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# 0() -> active# 0(), active# isNat s V1 -> isNatKind# V1) (mark# 0() -> active# 0(), active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# 0() -> active# 0(), active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# 0() -> active# 0(), active# U12(tt(), V2) -> U13# isNat V2) (mark# 0() -> active# 0(), active# U12(tt(), V2) -> isNat# V2) (mark# 0() -> active# 0(), active# U12(tt(), V2) -> mark# U13 isNat V2) (active# U13 tt() -> mark# tt(), mark# isNatKind X -> active# isNatKind X) (active# U13 tt() -> mark# tt(), mark# 0() -> active# 0()) (active# U13 tt() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2)) (active# U13 tt() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2)) (active# U13 tt() -> mark# tt(), mark# and(X1, X2) -> mark# X1) (active# U13 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# U13 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# U13 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1) (active# U13 tt() -> mark# tt(), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# U13 tt() -> mark# tt(), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# U13 tt() -> mark# tt(), mark# plus(X1, X2) -> mark# X2) (active# U13 tt() -> mark# tt(), mark# plus(X1, X2) -> mark# X1) (active# U13 tt() -> mark# tt(), mark# s X -> s# mark X) (active# U13 tt() -> mark# tt(), mark# s X -> active# s mark X) (active# U13 tt() -> mark# tt(), mark# s X -> mark# X) (active# U13 tt() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# U13 tt() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# U13 tt() -> mark# tt(), mark# U31(X1, X2) -> mark# X1) (active# U13 tt() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# U13 tt() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# U13 tt() -> mark# tt(), mark# U21(X1, X2) -> mark# X1) (active# U13 tt() -> mark# tt(), mark# U22 X -> U22# mark X) (active# U13 tt() -> mark# tt(), mark# U22 X -> active# U22 mark X) (active# U13 tt() -> mark# tt(), mark# U22 X -> mark# X) (active# U13 tt() -> mark# tt(), mark# U13 X -> U13# mark X) (active# U13 tt() -> mark# tt(), mark# U13 X -> active# U13 mark X) (active# U13 tt() -> mark# tt(), mark# U13 X -> mark# X) (active# U13 tt() -> mark# tt(), mark# tt() -> active# tt()) (active# U13 tt() -> mark# tt(), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# U13 tt() -> mark# tt(), mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# U13 tt() -> mark# tt(), mark# U11(X1, X2, X3) -> mark# X1) (active# U13 tt() -> mark# tt(), mark# isNat X -> active# isNat X) (active# U13 tt() -> mark# tt(), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U13 tt() -> mark# tt(), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U13 tt() -> mark# tt(), mark# U12(X1, X2) -> mark# X1) (active# isNatKind 0() -> mark# tt(), mark# isNatKind X -> active# isNatKind X) (active# isNatKind 0() -> mark# tt(), mark# 0() -> active# 0()) (active# isNatKind 0() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2)) (active# isNatKind 0() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2)) (active# isNatKind 0() -> mark# tt(), mark# and(X1, X2) -> mark# X1) (active# isNatKind 0() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# isNatKind 0() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# isNatKind 0() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1) (active# isNatKind 0() -> mark# tt(), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# isNatKind 0() -> mark# tt(), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# isNatKind 0() -> mark# tt(), mark# plus(X1, X2) -> mark# X2) (active# isNatKind 0() -> mark# tt(), mark# plus(X1, X2) -> mark# X1) (active# isNatKind 0() -> mark# tt(), mark# s X -> s# mark X) (active# isNatKind 0() -> mark# tt(), mark# s X -> active# s mark X) (active# isNatKind 0() -> mark# tt(), mark# s X -> mark# X) (active# isNatKind 0() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# isNatKind 0() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# isNatKind 0() -> mark# tt(), mark# U31(X1, X2) -> mark# X1) (active# isNatKind 0() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# isNatKind 0() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# isNatKind 0() -> mark# tt(), mark# U21(X1, X2) -> mark# X1) (active# isNatKind 0() -> mark# tt(), mark# U22 X -> U22# mark X) (active# isNatKind 0() -> mark# tt(), mark# U22 X -> active# U22 mark X) (active# isNatKind 0() -> mark# tt(), mark# U22 X -> mark# X) (active# isNatKind 0() -> mark# tt(), mark# U13 X -> U13# mark X) (active# isNatKind 0() -> mark# tt(), mark# U13 X -> active# U13 mark X) (active# isNatKind 0() -> mark# tt(), mark# U13 X -> mark# X) (active# isNatKind 0() -> mark# tt(), mark# tt() -> active# tt()) (active# isNatKind 0() -> mark# tt(), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# isNatKind 0() -> mark# tt(), mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# isNatKind 0() -> mark# tt(), mark# U11(X1, X2, X3) -> mark# X1) (active# isNatKind 0() -> mark# tt(), mark# isNat X -> active# isNat X) (active# isNatKind 0() -> mark# tt(), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# isNatKind 0() -> mark# tt(), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# isNatKind 0() -> mark# tt(), mark# U12(X1, X2) -> mark# X1) (active# isNat plus(V1, V2) -> isNatKind# V1, isNatKind# active X -> isNatKind# X) (active# isNat plus(V1, V2) -> isNatKind# V1, isNatKind# mark X -> isNatKind# X) (active# U11(tt(), V1, V2) -> isNat# V1, isNat# active X -> isNat# X) (active# U11(tt(), V1, V2) -> isNat# V1, isNat# mark X -> isNat# X) (active# isNatKind s V1 -> isNatKind# V1, isNatKind# active X -> isNatKind# X) (active# isNatKind s V1 -> isNatKind# V1, isNatKind# mark X -> isNatKind# X) (mark# U12(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X) (mark# U12(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# U12(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (mark# U12(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (mark# U12(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# U12(X1, X2) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# U12(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# U12(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# U12(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# U12(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U12(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X) (mark# U12(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X) (mark# U12(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# U12(X1, X2) -> mark# X1, mark# U13 X -> U13# mark X) (mark# U12(X1, X2) -> mark# X1, mark# U13 X -> active# U13 mark X) (mark# U12(X1, X2) -> mark# X1, mark# U13 X -> mark# X) (mark# U12(X1, X2) -> mark# X1, mark# tt() -> active# tt()) (mark# U12(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (mark# U12(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (mark# U12(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> mark# X1) (mark# U12(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X) (mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X) (mark# U21(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# U21(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (mark# U21(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (mark# U21(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# U21(X1, X2) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# U21(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# U21(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# U21(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# U21(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X) (mark# U21(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X) (mark# U21(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# U13 X -> U13# mark X) (mark# U21(X1, X2) -> mark# X1, mark# U13 X -> active# U13 mark X) (mark# U21(X1, X2) -> mark# X1, mark# U13 X -> mark# X) (mark# U21(X1, X2) -> mark# X1, mark# tt() -> active# tt()) (mark# U21(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (mark# U21(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (mark# U21(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> mark# X1) (mark# U21(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X) (mark# U21(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U21(X1, X2) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X) (mark# plus(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# plus(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2)) (mark# plus(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2)) (mark# plus(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (mark# plus(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (mark# plus(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# plus(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# plus(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# plus(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2)) (mark# plus(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (mark# plus(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2)) (mark# plus(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (mark# plus(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X) (mark# plus(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X) (mark# plus(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# plus(X1, X2) -> mark# X1, mark# U13 X -> U13# mark X) (mark# plus(X1, X2) -> mark# X1, mark# U13 X -> active# U13 mark X) (mark# plus(X1, X2) -> mark# X1, mark# U13 X -> mark# X) (mark# plus(X1, X2) -> mark# X1, mark# tt() -> active# tt()) (mark# plus(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (mark# plus(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (mark# plus(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> mark# X1) (mark# plus(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X) (mark# plus(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# plus(X1, X2) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# plus(X1, X2) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X) (mark# and(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (mark# and(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (mark# and(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# and(X1, X2) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# and(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# and(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# and(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# and(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X) (mark# and(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X) (mark# and(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# U13 X -> U13# mark X) (mark# and(X1, X2) -> mark# X1, mark# U13 X -> active# U13 mark X) (mark# and(X1, X2) -> mark# X1, mark# U13 X -> mark# X) (mark# and(X1, X2) -> mark# X1, mark# tt() -> active# tt()) (mark# and(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (mark# and(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (mark# and(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> mark# X1) (mark# and(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X) (mark# and(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# and(X1, X2) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# U13 X -> mark# X, mark# isNatKind X -> active# isNatKind X) (mark# U13 X -> mark# X, mark# 0() -> active# 0()) (mark# U13 X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2)) (mark# U13 X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2)) (mark# U13 X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# U13 X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (mark# U13 X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (mark# U13 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# U13 X -> mark# X, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# U13 X -> mark# X, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# U13 X -> mark# X, mark# plus(X1, X2) -> mark# X2) (mark# U13 X -> mark# X, mark# plus(X1, X2) -> mark# X1) (mark# U13 X -> mark# X, mark# s X -> s# mark X) (mark# U13 X -> mark# X, mark# s X -> active# s mark X) (mark# U13 X -> mark# X, mark# s X -> mark# X) (mark# U13 X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2)) (mark# U13 X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (mark# U13 X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# U13 X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2)) (mark# U13 X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (mark# U13 X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# U13 X -> mark# X, mark# U22 X -> U22# mark X) (mark# U13 X -> mark# X, mark# U22 X -> active# U22 mark X) (mark# U13 X -> mark# X, mark# U22 X -> mark# X) (mark# U13 X -> mark# X, mark# U13 X -> U13# mark X) (mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X) (mark# U13 X -> mark# X, mark# U13 X -> mark# X) (mark# U13 X -> mark# X, mark# tt() -> active# tt()) (mark# U13 X -> mark# X, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (mark# U13 X -> mark# X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (mark# U13 X -> mark# X, mark# U11(X1, X2, X3) -> mark# X1) (mark# U13 X -> mark# X, mark# isNat X -> active# isNat X) (mark# U13 X -> mark# X, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U13 X -> mark# X, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U13 X -> mark# X, mark# U12(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# isNatKind X -> active# isNatKind X) (mark# s X -> mark# X, mark# 0() -> active# 0()) (mark# s X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2)) (mark# s X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2)) (mark# s X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (mark# s X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (mark# s X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# s X -> mark# X, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# s X -> mark# X, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# s X -> mark# X, mark# plus(X1, X2) -> mark# X2) (mark# s X -> mark# X, mark# plus(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# s X -> s# mark X) (mark# s X -> mark# X, mark# s X -> active# s mark X) (mark# s X -> mark# X, mark# s X -> mark# X) (mark# s X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2)) (mark# s X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (mark# s X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2)) (mark# s X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (mark# s X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# s X -> mark# X, mark# U22 X -> U22# mark X) (mark# s X -> mark# X, mark# U22 X -> active# U22 mark X) (mark# s X -> mark# X, mark# U22 X -> mark# X) (mark# s X -> mark# X, mark# U13 X -> U13# mark X) (mark# s X -> mark# X, mark# U13 X -> active# U13 mark X) (mark# s X -> mark# X, mark# U13 X -> mark# X) (mark# s X -> mark# X, mark# tt() -> active# tt()) (mark# s X -> mark# X, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (mark# s X -> mark# X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (mark# s X -> mark# X, mark# U11(X1, X2, X3) -> mark# X1) (mark# s X -> mark# X, mark# isNat X -> active# isNat X) (mark# s X -> mark# X, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# s X -> mark# X, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# s X -> mark# X, mark# U12(X1, X2) -> mark# X1) (isNat# active X -> isNat# X, isNat# active X -> isNat# X) (isNat# active X -> isNat# X, isNat# mark X -> isNat# X) (U13# mark X -> U13# X, U13# active X -> U13# X) (U13# mark X -> U13# X, U13# mark X -> U13# X) (U22# mark X -> U22# X, U22# active X -> U22# X) (U22# mark X -> U22# X, U22# mark X -> U22# X) (s# mark X -> s# X, s# active X -> s# X) (s# mark X -> s# X, s# mark X -> s# X) (isNatKind# mark X -> isNatKind# X, isNatKind# active X -> isNatKind# X) (isNatKind# mark X -> isNatKind# X, isNatKind# mark X -> isNatKind# X) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNatKind 0() -> mark# tt()) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNatKind s V1 -> isNatKind# V1) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNatKind s V1 -> mark# isNatKind V1) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# and(tt(), X) -> mark# X) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U41(tt(), M, N) -> plus#(N, M)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U41(tt(), M, N) -> s# plus(N, M)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, 0()) -> isNatKind# N) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, 0()) -> isNat# N) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, s M) -> isNatKind# M) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, s M) -> isNatKind# N) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, s M) -> isNat# M) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, s M) -> isNat# N) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U31(tt(), N) -> mark# N) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U21(tt(), V1) -> U22# isNat V1) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U21(tt(), V1) -> isNat# V1) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U22 tt() -> mark# tt()) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U13 tt() -> mark# tt()) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U11(tt(), V1, V2) -> isNat# V1) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNat 0() -> mark# tt()) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNat plus(V1, V2) -> isNatKind# V2) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNat plus(V1, V2) -> isNatKind# V1) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNat s V1 -> isNatKind# V1) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U12(tt(), V2) -> U13# isNat V2) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U12(tt(), V2) -> isNat# V2) (mark# plus(X1, X2) -> active# plus(mark X1, mark X2), active# U12(tt(), V2) -> mark# U13 isNat V2) (mark# isNat X -> active# isNat X, active# isNatKind 0() -> mark# tt()) (mark# isNat X -> active# isNat X, active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# isNat X -> active# isNat X, active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# isNat X -> active# isNat X, active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# isNat X -> active# isNat X, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# isNat X -> active# isNat X, active# isNatKind s V1 -> isNatKind# V1) (mark# isNat X -> active# isNat X, active# isNatKind s V1 -> mark# isNatKind V1) (mark# isNat X -> active# isNat X, active# and(tt(), X) -> mark# X) (mark# isNat X -> active# isNat X, active# U41(tt(), M, N) -> plus#(N, M)) (mark# isNat X -> active# isNat X, active# U41(tt(), M, N) -> s# plus(N, M)) (mark# isNat X -> active# isNat X, active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# isNat X -> active# isNat X, active# plus(N, 0()) -> isNatKind# N) (mark# isNat X -> active# isNat X, active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# isNat X -> active# isNat X, active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# isNat X -> active# isNat X, active# plus(N, 0()) -> isNat# N) (mark# isNat X -> active# isNat X, active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# isNat X -> active# isNat X, active# plus(N, s M) -> isNatKind# M) (mark# isNat X -> active# isNat X, active# plus(N, s M) -> isNatKind# N) (mark# isNat X -> active# isNat X, active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# isNat X -> active# isNat X, active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# isNat X -> active# isNat X, active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# isNat X -> active# isNat X, active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# isNat X -> active# isNat X, active# plus(N, s M) -> isNat# M) (mark# isNat X -> active# isNat X, active# plus(N, s M) -> isNat# N) (mark# isNat X -> active# isNat X, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# isNat X -> active# isNat X, active# U31(tt(), N) -> mark# N) (mark# isNat X -> active# isNat X, active# U21(tt(), V1) -> U22# isNat V1) (mark# isNat X -> active# isNat X, active# U21(tt(), V1) -> isNat# V1) (mark# isNat X -> active# isNat X, active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# isNat X -> active# isNat X, active# U22 tt() -> mark# tt()) (mark# isNat X -> active# isNat X, active# U13 tt() -> mark# tt()) (mark# isNat X -> active# isNat X, active# U11(tt(), V1, V2) -> isNat# V1) (mark# isNat X -> active# isNat X, active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# isNat X -> active# isNat X, active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# isNat X -> active# isNat X, active# isNat 0() -> mark# tt()) (mark# isNat X -> active# isNat X, active# isNat plus(V1, V2) -> isNatKind# V2) (mark# isNat X -> active# isNat X, active# isNat plus(V1, V2) -> isNatKind# V1) (mark# isNat X -> active# isNat X, active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# isNat X -> active# isNat X, active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# isNat X -> active# isNat X, active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# isNat X -> active# isNat X, active# isNat s V1 -> isNatKind# V1) (mark# isNat X -> active# isNat X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# isNat X -> active# isNat X, active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# isNat X -> active# isNat X, active# U12(tt(), V2) -> U13# isNat V2) (mark# isNat X -> active# isNat X, active# U12(tt(), V2) -> isNat# V2) (mark# isNat X -> active# isNat X, active# U12(tt(), V2) -> mark# U13 isNat V2) (mark# U22 X -> U22# mark X, U22# active X -> U22# X) (mark# U22 X -> U22# mark X, U22# mark X -> U22# X) (mark# isNatKind X -> active# isNatKind X, active# isNatKind 0() -> mark# tt()) (mark# isNatKind X -> active# isNatKind X, active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# isNatKind X -> active# isNatKind X, active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# isNatKind X -> active# isNatKind X, active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# isNatKind X -> active# isNatKind X, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# isNatKind X -> active# isNatKind X, active# isNatKind s V1 -> isNatKind# V1) (mark# isNatKind X -> active# isNatKind X, active# isNatKind s V1 -> mark# isNatKind V1) (mark# isNatKind X -> active# isNatKind X, active# and(tt(), X) -> mark# X) (mark# isNatKind X -> active# isNatKind X, active# U41(tt(), M, N) -> plus#(N, M)) (mark# isNatKind X -> active# isNatKind X, active# U41(tt(), M, N) -> s# plus(N, M)) (mark# isNatKind X -> active# isNatKind X, active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# isNatKind X -> active# isNatKind X, active# plus(N, 0()) -> isNatKind# N) (mark# isNatKind X -> active# isNatKind X, active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# isNatKind X -> active# isNatKind X, active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# isNatKind X -> active# isNatKind X, active# plus(N, 0()) -> isNat# N) (mark# isNatKind X -> active# isNatKind X, active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# isNatKind X -> active# isNatKind X, active# plus(N, s M) -> isNatKind# M) (mark# isNatKind X -> active# isNatKind X, active# plus(N, s M) -> isNatKind# N) (mark# isNatKind X -> active# isNatKind X, active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# isNatKind X -> active# isNatKind X, active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# isNatKind X -> active# isNatKind X, active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# isNatKind X -> active# isNatKind X, active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# isNatKind X -> active# isNatKind X, active# plus(N, s M) -> isNat# M) (mark# isNatKind X -> active# isNatKind X, active# plus(N, s M) -> isNat# N) (mark# isNatKind X -> active# isNatKind X, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# isNatKind X -> active# isNatKind X, active# U31(tt(), N) -> mark# N) (mark# isNatKind X -> active# isNatKind X, active# U21(tt(), V1) -> U22# isNat V1) (mark# isNatKind X -> active# isNatKind X, active# U21(tt(), V1) -> isNat# V1) (mark# isNatKind X -> active# isNatKind X, active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# isNatKind X -> active# isNatKind X, active# U22 tt() -> mark# tt()) (mark# isNatKind X -> active# isNatKind X, active# U13 tt() -> mark# tt()) (mark# isNatKind X -> active# isNatKind X, active# U11(tt(), V1, V2) -> isNat# V1) (mark# isNatKind X -> active# isNatKind X, active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# isNatKind X -> active# isNatKind X, active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# isNatKind X -> active# isNatKind X, active# isNat 0() -> mark# tt()) (mark# isNatKind X -> active# isNatKind X, active# isNat plus(V1, V2) -> isNatKind# V2) (mark# isNatKind X -> active# isNatKind X, active# isNat plus(V1, V2) -> isNatKind# V1) (mark# isNatKind X -> active# isNatKind X, active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# isNatKind X -> active# isNatKind X, active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# isNatKind X -> active# isNatKind X, active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# isNatKind X -> active# isNatKind X, active# isNat s V1 -> isNatKind# V1) (mark# isNatKind X -> active# isNatKind X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# isNatKind X -> active# isNatKind X, active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> U13# isNat V2) (mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> isNat# V2) (mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2) (active# U21(tt(), V1) -> U22# isNat V1, U22# active X -> U22# X) (active# U21(tt(), V1) -> U22# isNat V1, U22# mark X -> U22# X) (mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3), U11#(active X1, X2, X3) -> U11#(X1, X2, X3)) (mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3)) (mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3)) (mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3)) (mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3), U11#(X1, X2, mark X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(active X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark X3) -> U11#(X1, X2, X3)) (U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(active X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3)) (U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark X3) -> U11#(X1, X2, X3)) (U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(active X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3)) (U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3)) (U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3)) (U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark X3) -> U11#(X1, X2, X3)) (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3)) (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3)) (U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3)) (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3)) (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3)) (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3)) (U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3)) (active# plus(N, s M) -> isNat# M, isNat# active X -> isNat# X) (active# plus(N, s M) -> isNat# M, isNat# mark X -> isNat# X) (active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), and#(active X1, X2) -> and#(X1, X2)) (active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), and#(mark X1, X2) -> and#(X1, X2)) (active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), and#(X1, active X2) -> and#(X1, X2)) (active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), and#(X1, mark X2) -> and#(X1, X2)) (active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N), U31#(active X1, X2) -> U31#(X1, X2)) (active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N), U31#(mark X1, X2) -> U31#(X1, X2)) (active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N), U31#(X1, active X2) -> U31#(X1, X2)) (active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N), U31#(X1, mark X2) -> U31#(X1, X2)) (active# plus(N, s M) -> isNat# N, isNat# active X -> isNat# X) (active# plus(N, s M) -> isNat# N, isNat# mark X -> isNat# X) (active# plus(N, 0()) -> isNat# N, isNat# active X -> isNat# X) (active# plus(N, 0()) -> isNat# N, isNat# mark X -> isNat# X) (mark# U13 X -> active# U13 mark X, active# isNatKind 0() -> mark# tt()) (mark# U13 X -> active# U13 mark X, active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# U13 X -> active# U13 mark X, active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# U13 X -> active# U13 mark X, active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U13 X -> active# U13 mark X, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# U13 X -> active# U13 mark X, active# isNatKind s V1 -> isNatKind# V1) (mark# U13 X -> active# U13 mark X, active# isNatKind s V1 -> mark# isNatKind V1) (mark# U13 X -> active# U13 mark X, active# and(tt(), X) -> mark# X) (mark# U13 X -> active# U13 mark X, active# U41(tt(), M, N) -> plus#(N, M)) (mark# U13 X -> active# U13 mark X, active# U41(tt(), M, N) -> s# plus(N, M)) (mark# U13 X -> active# U13 mark X, active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# U13 X -> active# U13 mark X, active# plus(N, 0()) -> isNatKind# N) (mark# U13 X -> active# U13 mark X, active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# U13 X -> active# U13 mark X, active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# U13 X -> active# U13 mark X, active# plus(N, 0()) -> isNat# N) (mark# U13 X -> active# U13 mark X, active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# U13 X -> active# U13 mark X, active# plus(N, s M) -> isNatKind# M) (mark# U13 X -> active# U13 mark X, active# plus(N, s M) -> isNatKind# N) (mark# U13 X -> active# U13 mark X, active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# U13 X -> active# U13 mark X, active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# U13 X -> active# U13 mark X, active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# U13 X -> active# U13 mark X, active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U13 X -> active# U13 mark X, active# plus(N, s M) -> isNat# M) (mark# U13 X -> active# U13 mark X, active# plus(N, s M) -> isNat# N) (mark# U13 X -> active# U13 mark X, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U13 X -> active# U13 mark X, active# U31(tt(), N) -> mark# N) (mark# U13 X -> active# U13 mark X, active# U21(tt(), V1) -> U22# isNat V1) (mark# U13 X -> active# U13 mark X, active# U21(tt(), V1) -> isNat# V1) (mark# U13 X -> active# U13 mark X, active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# U13 X -> active# U13 mark X, active# U22 tt() -> mark# tt()) (mark# U13 X -> active# U13 mark X, active# U13 tt() -> mark# tt()) (mark# U13 X -> active# U13 mark X, active# U11(tt(), V1, V2) -> isNat# V1) (mark# U13 X -> active# U13 mark X, active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# U13 X -> active# U13 mark X, active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# U13 X -> active# U13 mark X, active# isNat 0() -> mark# tt()) (mark# U13 X -> active# U13 mark X, active# isNat plus(V1, V2) -> isNatKind# V2) (mark# U13 X -> active# U13 mark X, active# isNat plus(V1, V2) -> isNatKind# V1) (mark# U13 X -> active# U13 mark X, active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U13 X -> active# U13 mark X, active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U13 X -> active# U13 mark X, active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U13 X -> active# U13 mark X, active# isNat s V1 -> isNatKind# V1) (mark# U13 X -> active# U13 mark X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# U13 X -> active# U13 mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# U13 X -> active# U13 mark X, active# U12(tt(), V2) -> U13# isNat V2) (mark# U13 X -> active# U13 mark X, active# U12(tt(), V2) -> isNat# V2) (mark# U13 X -> active# U13 mark X, active# U12(tt(), V2) -> mark# U13 isNat V2) (mark# s X -> active# s mark X, active# isNatKind 0() -> mark# tt()) (mark# s X -> active# s mark X, active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# s X -> active# s mark X, active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# s X -> active# s mark X, active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# s X -> active# s mark X, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# s X -> active# s mark X, active# isNatKind s V1 -> isNatKind# V1) (mark# s X -> active# s mark X, active# isNatKind s V1 -> mark# isNatKind V1) (mark# s X -> active# s mark X, active# and(tt(), X) -> mark# X) (mark# s X -> active# s mark X, active# U41(tt(), M, N) -> plus#(N, M)) (mark# s X -> active# s mark X, active# U41(tt(), M, N) -> s# plus(N, M)) (mark# s X -> active# s mark X, active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# s X -> active# s mark X, active# plus(N, 0()) -> isNatKind# N) (mark# s X -> active# s mark X, active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# s X -> active# s mark X, active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# s X -> active# s mark X, active# plus(N, 0()) -> isNat# N) (mark# s X -> active# s mark X, active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# s X -> active# s mark X, active# plus(N, s M) -> isNatKind# M) (mark# s X -> active# s mark X, active# plus(N, s M) -> isNatKind# N) (mark# s X -> active# s mark X, active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# s X -> active# s mark X, active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# s X -> active# s mark X, active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# s X -> active# s mark X, active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# s X -> active# s mark X, active# plus(N, s M) -> isNat# M) (mark# s X -> active# s mark X, active# plus(N, s M) -> isNat# N) (mark# s X -> active# s mark X, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# s X -> active# s mark X, active# U31(tt(), N) -> mark# N) (mark# s X -> active# s mark X, active# U21(tt(), V1) -> U22# isNat V1) (mark# s X -> active# s mark X, active# U21(tt(), V1) -> isNat# V1) (mark# s X -> active# s mark X, active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# s X -> active# s mark X, active# U22 tt() -> mark# tt()) (mark# s X -> active# s mark X, active# U13 tt() -> mark# tt()) (mark# s X -> active# s mark X, active# U11(tt(), V1, V2) -> isNat# V1) (mark# s X -> active# s mark X, active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# s X -> active# s mark X, active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# s X -> active# s mark X, active# isNat 0() -> mark# tt()) (mark# s X -> active# s mark X, active# isNat plus(V1, V2) -> isNatKind# V2) (mark# s X -> active# s mark X, active# isNat plus(V1, V2) -> isNatKind# V1) (mark# s X -> active# s mark X, active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# s X -> active# s mark X, active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# s X -> active# s mark X, active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# s X -> active# s mark X, active# isNat s V1 -> isNatKind# V1) (mark# s X -> active# s mark X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# s X -> active# s mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# s X -> active# s mark X, active# U12(tt(), V2) -> U13# isNat V2) (mark# s X -> active# s mark X, active# U12(tt(), V2) -> isNat# V2) (mark# s X -> active# s mark X, active# U12(tt(), V2) -> mark# U13 isNat V2) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# isNatKind X -> active# isNatKind X) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# 0() -> active# 0()) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# and(X1, X2) -> and#(mark X1, X2)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# and(X1, X2) -> active# and(mark X1, X2)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# and(X1, X2) -> mark# X1) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U41(X1, X2, X3) -> mark# X1) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# plus(X1, X2) -> mark# X2) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# plus(X1, X2) -> mark# X1) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# s X -> s# mark X) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# s X -> active# s mark X) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# s X -> mark# X) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U31(X1, X2) -> mark# X1) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U21(X1, X2) -> mark# X1) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U22 X -> U22# mark X) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U22 X -> active# U22 mark X) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U22 X -> mark# X) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U13 X -> U13# mark X) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U13 X -> active# U13 mark X) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U13 X -> mark# X) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# tt() -> active# tt()) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U11(X1, X2, X3) -> mark# X1) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# isNat X -> active# isNat X) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U21(tt(), V1) -> mark# U22 isNat V1, mark# U12(X1, X2) -> mark# X1) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNatKind 0() -> mark# tt()) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNatKind s V1 -> isNatKind# V1) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNatKind s V1 -> mark# isNatKind V1) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# and(tt(), X) -> mark# X) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U41(tt(), M, N) -> plus#(N, M)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U41(tt(), M, N) -> s# plus(N, M)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, 0()) -> isNatKind# N) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, 0()) -> isNat# N) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, s M) -> isNatKind# M) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, s M) -> isNatKind# N) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, s M) -> isNat# M) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, s M) -> isNat# N) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U31(tt(), N) -> mark# N) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U21(tt(), V1) -> U22# isNat V1) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U21(tt(), V1) -> isNat# V1) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U22 tt() -> mark# tt()) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U13 tt() -> mark# tt()) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U11(tt(), V1, V2) -> isNat# V1) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNat 0() -> mark# tt()) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNat plus(V1, V2) -> isNatKind# V2) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNat plus(V1, V2) -> isNatKind# V1) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNat s V1 -> isNatKind# V1) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U12(tt(), V2) -> U13# isNat V2) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U12(tt(), V2) -> isNat# V2) (mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), active# U12(tt(), V2) -> mark# U13 isNat V2) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# isNatKind X -> active# isNatKind X) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# 0() -> active# 0()) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# and(X1, X2) -> and#(mark X1, X2)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# and(X1, X2) -> active# and(mark X1, X2)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# and(X1, X2) -> mark# X1) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U41(X1, X2, X3) -> mark# X1) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# plus(X1, X2) -> mark# X2) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# plus(X1, X2) -> mark# X1) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# s X -> s# mark X) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# s X -> active# s mark X) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# s X -> mark# X) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U31(X1, X2) -> mark# X1) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U21(X1, X2) -> mark# X1) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U22 X -> U22# mark X) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U22 X -> active# U22 mark X) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U22 X -> mark# X) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U13 X -> U13# mark X) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U13 X -> active# U13 mark X) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U13 X -> mark# X) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# tt() -> active# tt()) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U11(X1, X2, X3) -> mark# X1) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# isNat X -> active# isNat X) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), mark# U12(X1, X2) -> mark# X1) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U12(X1, X2) -> mark# X1) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# isNat X -> active# isNat X) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U11(X1, X2, X3) -> mark# X1) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# tt() -> active# tt()) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U13 X -> mark# X) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U13 X -> active# U13 mark X) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U13 X -> U13# mark X) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U22 X -> mark# X) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U22 X -> active# U22 mark X) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U22 X -> U22# mark X) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U21(X1, X2) -> mark# X1) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U31(X1, X2) -> mark# X1) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# s X -> mark# X) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# s X -> active# s mark X) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# s X -> s# mark X) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# plus(X1, X2) -> mark# X1) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# plus(X1, X2) -> mark# X2) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U41(X1, X2, X3) -> mark# X1) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# and(X1, X2) -> mark# X1) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# and(X1, X2) -> active# and(mark X1, X2)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# and(X1, X2) -> and#(mark X1, X2)) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# 0() -> active# 0()) (active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), mark# isNatKind X -> active# isNatKind X) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U12(tt(), V2) -> mark# U13 isNat V2) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U12(tt(), V2) -> isNat# V2) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U12(tt(), V2) -> U13# isNat V2) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat s V1 -> isNatKind# V1) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat plus(V1, V2) -> isNatKind# V1) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat plus(V1, V2) -> isNatKind# V2) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNat 0() -> mark# tt()) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U11(tt(), V1, V2) -> isNat# V1) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U13 tt() -> mark# tt()) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U22 tt() -> mark# tt()) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U21(tt(), V1) -> isNat# V1) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U21(tt(), V1) -> U22# isNat V1) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U31(tt(), N) -> mark# N) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, s M) -> isNat# N) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, s M) -> isNat# M) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, s M) -> isNatKind# N) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, s M) -> isNatKind# M) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, 0()) -> isNat# N) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# plus(N, 0()) -> isNatKind# N) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U41(tt(), M, N) -> s# plus(N, M)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# U41(tt(), M, N) -> plus#(N, M)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# and(tt(), X) -> mark# X) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind s V1 -> mark# isNatKind V1) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind s V1 -> isNatKind# V1) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), active# isNatKind 0() -> mark# tt()) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U12(X1, X2) -> mark# X1) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# isNat X -> active# isNat X) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U11(X1, X2, X3) -> mark# X1) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# tt() -> active# tt()) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U13 X -> mark# X) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U13 X -> active# U13 mark X) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U13 X -> U13# mark X) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U22 X -> mark# X) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U22 X -> active# U22 mark X) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U22 X -> U22# mark X) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U21(X1, X2) -> mark# X1) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U31(X1, X2) -> mark# X1) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# s X -> mark# X) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# s X -> active# s mark X) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# s X -> s# mark X) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# plus(X1, X2) -> mark# X1) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# plus(X1, X2) -> mark# X2) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U41(X1, X2, X3) -> mark# X1) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# and(X1, X2) -> mark# X1) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# and(X1, X2) -> active# and(mark X1, X2)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# and(X1, X2) -> and#(mark X1, X2)) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# 0() -> active# 0()) (active# U41(tt(), M, N) -> mark# s plus(N, M), mark# isNatKind X -> active# isNatKind X) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U12(X1, X2) -> mark# X1) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# isNat X -> active# isNat X) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U11(X1, X2, X3) -> mark# X1) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# tt() -> active# tt()) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U13 X -> mark# X) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U13 X -> active# U13 mark X) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U13 X -> U13# mark X) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U22 X -> mark# X) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U22 X -> active# U22 mark X) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U22 X -> U22# mark X) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U21(X1, X2) -> mark# X1) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U31(X1, X2) -> mark# X1) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# s X -> mark# X) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# s X -> active# s mark X) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# s X -> s# mark X) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# plus(X1, X2) -> mark# X1) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# plus(X1, X2) -> mark# X2) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U41(X1, X2, X3) -> mark# X1) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# and(X1, X2) -> mark# X1) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# and(X1, X2) -> active# and(mark X1, X2)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# and(X1, X2) -> and#(mark X1, X2)) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# 0() -> active# 0()) (active# U12(tt(), V2) -> mark# U13 isNat V2, mark# isNatKind X -> active# isNatKind X) (mark# U22 X -> active# U22 mark X, active# U12(tt(), V2) -> mark# U13 isNat V2) (mark# U22 X -> active# U22 mark X, active# U12(tt(), V2) -> isNat# V2) (mark# U22 X -> active# U22 mark X, active# U12(tt(), V2) -> U13# isNat V2) (mark# U22 X -> active# U22 mark X, active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# U22 X -> active# U22 mark X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# U22 X -> active# U22 mark X, active# isNat s V1 -> isNatKind# V1) (mark# U22 X -> active# U22 mark X, active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U22 X -> active# U22 mark X, active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U22 X -> active# U22 mark X, active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U22 X -> active# U22 mark X, active# isNat plus(V1, V2) -> isNatKind# V1) (mark# U22 X -> active# U22 mark X, active# isNat plus(V1, V2) -> isNatKind# V2) (mark# U22 X -> active# U22 mark X, active# isNat 0() -> mark# tt()) (mark# U22 X -> active# U22 mark X, active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# U22 X -> active# U22 mark X, active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# U22 X -> active# U22 mark X, active# U11(tt(), V1, V2) -> isNat# V1) (mark# U22 X -> active# U22 mark X, active# U13 tt() -> mark# tt()) (mark# U22 X -> active# U22 mark X, active# U22 tt() -> mark# tt()) (mark# U22 X -> active# U22 mark X, active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# U22 X -> active# U22 mark X, active# U21(tt(), V1) -> isNat# V1) (mark# U22 X -> active# U22 mark X, active# U21(tt(), V1) -> U22# isNat V1) (mark# U22 X -> active# U22 mark X, active# U31(tt(), N) -> mark# N) (mark# U22 X -> active# U22 mark X, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U22 X -> active# U22 mark X, active# plus(N, s M) -> isNat# N) (mark# U22 X -> active# U22 mark X, active# plus(N, s M) -> isNat# M) (mark# U22 X -> active# U22 mark X, active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U22 X -> active# U22 mark X, active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# U22 X -> active# U22 mark X, active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# U22 X -> active# U22 mark X, active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# U22 X -> active# U22 mark X, active# plus(N, s M) -> isNatKind# N) (mark# U22 X -> active# U22 mark X, active# plus(N, s M) -> isNatKind# M) (mark# U22 X -> active# U22 mark X, active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# U22 X -> active# U22 mark X, active# plus(N, 0()) -> isNat# N) (mark# U22 X -> active# U22 mark X, active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# U22 X -> active# U22 mark X, active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# U22 X -> active# U22 mark X, active# plus(N, 0()) -> isNatKind# N) (mark# U22 X -> active# U22 mark X, active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# U22 X -> active# U22 mark X, active# U41(tt(), M, N) -> s# plus(N, M)) (mark# U22 X -> active# U22 mark X, active# U41(tt(), M, N) -> plus#(N, M)) (mark# U22 X -> active# U22 mark X, active# and(tt(), X) -> mark# X) (mark# U22 X -> active# U22 mark X, active# isNatKind s V1 -> mark# isNatKind V1) (mark# U22 X -> active# U22 mark X, active# isNatKind s V1 -> isNatKind# V1) (mark# U22 X -> active# U22 mark X, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# U22 X -> active# U22 mark X, active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U22 X -> active# U22 mark X, active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# U22 X -> active# U22 mark X, active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# U22 X -> active# U22 mark X, active# isNatKind 0() -> mark# tt()) (active# plus(N, 0()) -> isNatKind# N, isNatKind# mark X -> isNatKind# X) (active# plus(N, 0()) -> isNatKind# N, isNatKind# active X -> isNatKind# X) (active# plus(N, s M) -> isNatKind# N, isNatKind# mark X -> isNatKind# X) (active# plus(N, s M) -> isNatKind# N, isNatKind# active X -> isNatKind# X) (active# U31(tt(), N) -> mark# N, mark# U12(X1, X2) -> mark# X1) (active# U31(tt(), N) -> mark# N, mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U31(tt(), N) -> mark# N, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U31(tt(), N) -> mark# N, mark# isNat X -> active# isNat X) (active# U31(tt(), N) -> mark# N, mark# U11(X1, X2, X3) -> mark# X1) (active# U31(tt(), N) -> mark# N, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# U31(tt(), N) -> mark# N, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# U31(tt(), N) -> mark# N, mark# tt() -> active# tt()) (active# U31(tt(), N) -> mark# N, mark# U13 X -> mark# X) (active# U31(tt(), N) -> mark# N, mark# U13 X -> active# U13 mark X) (active# U31(tt(), N) -> mark# N, mark# U13 X -> U13# mark X) (active# U31(tt(), N) -> mark# N, mark# U22 X -> mark# X) (active# U31(tt(), N) -> mark# N, mark# U22 X -> active# U22 mark X) (active# U31(tt(), N) -> mark# N, mark# U22 X -> U22# mark X) (active# U31(tt(), N) -> mark# N, mark# U21(X1, X2) -> mark# X1) (active# U31(tt(), N) -> mark# N, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# U31(tt(), N) -> mark# N, mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# U31(tt(), N) -> mark# N, mark# U31(X1, X2) -> mark# X1) (active# U31(tt(), N) -> mark# N, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# U31(tt(), N) -> mark# N, mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# U31(tt(), N) -> mark# N, mark# s X -> mark# X) (active# U31(tt(), N) -> mark# N, mark# s X -> active# s mark X) (active# U31(tt(), N) -> mark# N, mark# s X -> s# mark X) (active# U31(tt(), N) -> mark# N, mark# plus(X1, X2) -> mark# X1) (active# U31(tt(), N) -> mark# N, mark# plus(X1, X2) -> mark# X2) (active# U31(tt(), N) -> mark# N, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# U31(tt(), N) -> mark# N, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# U31(tt(), N) -> mark# N, mark# U41(X1, X2, X3) -> mark# X1) (active# U31(tt(), N) -> mark# N, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# U31(tt(), N) -> mark# N, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# U31(tt(), N) -> mark# N, mark# and(X1, X2) -> mark# X1) (active# U31(tt(), N) -> mark# N, mark# and(X1, X2) -> active# and(mark X1, X2)) (active# U31(tt(), N) -> mark# N, mark# and(X1, X2) -> and#(mark X1, X2)) (active# U31(tt(), N) -> mark# N, mark# 0() -> active# 0()) (active# U31(tt(), N) -> mark# N, mark# isNatKind X -> active# isNatKind X) (active# isNat s V1 -> U21#(isNatKind V1, V1), U21#(X1, mark X2) -> U21#(X1, X2)) (active# isNat s V1 -> U21#(isNatKind V1, V1), U21#(X1, active X2) -> U21#(X1, X2)) (active# isNat s V1 -> U21#(isNatKind V1, V1), U21#(mark X1, X2) -> U21#(X1, X2)) (active# isNat s V1 -> U21#(isNatKind V1, V1), U21#(active X1, X2) -> U21#(X1, X2)) (active# plus(N, s M) -> isNatKind# M, isNatKind# mark X -> isNatKind# X) (active# plus(N, s M) -> isNatKind# M, isNatKind# active X -> isNatKind# X) (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3)) (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3)) (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3)) (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3)) (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(active X1, X2, X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3)) (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3)) (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3)) (U11#(active X1, X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark X3) -> U11#(X1, X2, X3)) (U11#(active X1, X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3)) (U11#(active X1, X2, X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3)) (U11#(active X1, X2, X3) -> U11#(X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3)) (U11#(active X1, X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(active X1, X2, X3) -> U11#(X1, X2, X3), U11#(active X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, active X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark X3) -> U11#(X1, X2, X3)) (U11#(X1, active X2, X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3)) (U11#(X1, active X2, X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, active X2, X3) -> U11#(X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, active X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, active X2, X3) -> U11#(X1, X2, X3), U11#(active X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, X2, mark X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(active X1, X2, X3) -> U11#(X1, X2, X3)) (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3)) (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3)) (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3)) (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3)) (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)) (mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U12(X1, X2) -> mark# X1) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# isNat X -> active# isNat X) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U11(X1, X2, X3) -> mark# X1) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# tt() -> active# tt()) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U13 X -> mark# X) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U13 X -> active# U13 mark X) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U13 X -> U13# mark X) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U22 X -> mark# X) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U22 X -> active# U22 mark X) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U22 X -> U22# mark X) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U21(X1, X2) -> mark# X1) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U31(X1, X2) -> mark# X1) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# s X -> mark# X) (active# isNatKind s V1 -> mark# isNatKind V1, mark# s X -> active# s mark X) (active# isNatKind s V1 -> mark# isNatKind V1, mark# s X -> s# mark X) (active# isNatKind s V1 -> mark# isNatKind V1, mark# plus(X1, X2) -> mark# X1) (active# isNatKind s V1 -> mark# isNatKind V1, mark# plus(X1, X2) -> mark# X2) (active# isNatKind s V1 -> mark# isNatKind V1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U41(X1, X2, X3) -> mark# X1) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# and(X1, X2) -> mark# X1) (active# isNatKind s V1 -> mark# isNatKind V1, mark# and(X1, X2) -> active# and(mark X1, X2)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# and(X1, X2) -> and#(mark X1, X2)) (active# isNatKind s V1 -> mark# isNatKind V1, mark# 0() -> active# 0()) (active# isNatKind s V1 -> mark# isNatKind V1, mark# isNatKind X -> active# isNatKind X) (active# U12(tt(), V2) -> U13# isNat V2, U13# mark X -> U13# X) (active# U12(tt(), V2) -> U13# isNat V2, U13# active X -> U13# X) (mark# s X -> s# mark X, s# mark X -> s# X) (mark# s X -> s# mark X, s# active X -> s# X) (mark# U13 X -> U13# mark X, U13# mark X -> U13# X) (mark# U13 X -> U13# mark X, U13# active X -> U13# X) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U12(X1, X2) -> mark# X1) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# isNat X -> active# isNat X) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U11(X1, X2, X3) -> mark# X1) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# tt() -> active# tt()) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U13 X -> mark# X) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U13 X -> active# U13 mark X) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U13 X -> U13# mark X) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U22 X -> mark# X) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U22 X -> active# U22 mark X) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U22 X -> U22# mark X) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U21(X1, X2) -> mark# X1) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U31(X1, X2) -> mark# X1) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# s X -> mark# X) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# s X -> active# s mark X) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# s X -> s# mark X) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# plus(X1, X2) -> mark# X1) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# plus(X1, X2) -> mark# X2) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U41(X1, X2, X3) -> mark# X1) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# and(X1, X2) -> mark# X1) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# and(X1, X2) -> active# and(mark X1, X2)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# and(X1, X2) -> and#(mark X1, X2)) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# 0() -> active# 0()) (active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), mark# isNatKind X -> active# isNatKind X) (isNatKind# active X -> isNatKind# X, isNatKind# mark X -> isNatKind# X) (isNatKind# active X -> isNatKind# X, isNatKind# active X -> isNatKind# X) (s# active X -> s# X, s# mark X -> s# X) (s# active X -> s# X, s# active X -> s# X) (U22# active X -> U22# X, U22# mark X -> U22# X) (U22# active X -> U22# X, U22# active X -> U22# X) (U13# active X -> U13# X, U13# mark X -> U13# X) (U13# active X -> U13# X, U13# active X -> U13# X) (active# and(tt(), X) -> mark# X, mark# U12(X1, X2) -> mark# X1) (active# and(tt(), X) -> mark# X, mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# and(tt(), X) -> mark# X, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# and(tt(), X) -> mark# X, mark# isNat X -> active# isNat X) (active# and(tt(), X) -> mark# X, mark# U11(X1, X2, X3) -> mark# X1) (active# and(tt(), X) -> mark# X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# and(tt(), X) -> mark# X, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# and(tt(), X) -> mark# X, mark# tt() -> active# tt()) (active# and(tt(), X) -> mark# X, mark# U13 X -> mark# X) (active# and(tt(), X) -> mark# X, mark# U13 X -> active# U13 mark X) (active# and(tt(), X) -> mark# X, mark# U13 X -> U13# mark X) (active# and(tt(), X) -> mark# X, mark# U22 X -> mark# X) (active# and(tt(), X) -> mark# X, mark# U22 X -> active# U22 mark X) (active# and(tt(), X) -> mark# X, mark# U22 X -> U22# mark X) (active# and(tt(), X) -> mark# X, mark# U21(X1, X2) -> mark# X1) (active# and(tt(), X) -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# and(tt(), X) -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# and(tt(), X) -> mark# X, mark# U31(X1, X2) -> mark# X1) (active# and(tt(), X) -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# and(tt(), X) -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# and(tt(), X) -> mark# X, mark# s X -> mark# X) (active# and(tt(), X) -> mark# X, mark# s X -> active# s mark X) (active# and(tt(), X) -> mark# X, mark# s X -> s# mark X) (active# and(tt(), X) -> mark# X, mark# plus(X1, X2) -> mark# X1) (active# and(tt(), X) -> mark# X, mark# plus(X1, X2) -> mark# X2) (active# and(tt(), X) -> mark# X, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# and(tt(), X) -> mark# X, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# and(tt(), X) -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (active# and(tt(), X) -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# and(tt(), X) -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# and(tt(), X) -> mark# X, mark# and(X1, X2) -> mark# X1) (active# and(tt(), X) -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2)) (active# and(tt(), X) -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2)) (active# and(tt(), X) -> mark# X, mark# 0() -> active# 0()) (active# and(tt(), X) -> mark# X, mark# isNatKind X -> active# isNatKind X) (isNat# mark X -> isNat# X, isNat# mark X -> isNat# X) (isNat# mark X -> isNat# X, isNat# active X -> isNat# X) (mark# U22 X -> mark# X, mark# U12(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U22 X -> mark# X, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U22 X -> mark# X, mark# isNat X -> active# isNat X) (mark# U22 X -> mark# X, mark# U11(X1, X2, X3) -> mark# X1) (mark# U22 X -> mark# X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (mark# U22 X -> mark# X, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (mark# U22 X -> mark# X, mark# tt() -> active# tt()) (mark# U22 X -> mark# X, mark# U13 X -> mark# X) (mark# U22 X -> mark# X, mark# U13 X -> active# U13 mark X) (mark# U22 X -> mark# X, mark# U13 X -> U13# mark X) (mark# U22 X -> mark# X, mark# U22 X -> mark# X) (mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X) (mark# U22 X -> mark# X, mark# U22 X -> U22# mark X) (mark# U22 X -> mark# X, mark# U21(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (mark# U22 X -> mark# X, mark# U21(X1, X2) -> U21#(mark X1, X2)) (mark# U22 X -> mark# X, mark# U31(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (mark# U22 X -> mark# X, mark# U31(X1, X2) -> U31#(mark X1, X2)) (mark# U22 X -> mark# X, mark# s X -> mark# X) (mark# U22 X -> mark# X, mark# s X -> active# s mark X) (mark# U22 X -> mark# X, mark# s X -> s# mark X) (mark# U22 X -> mark# X, mark# plus(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# plus(X1, X2) -> mark# X2) (mark# U22 X -> mark# X, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# U22 X -> mark# X, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# U22 X -> mark# X, mark# U41(X1, X2, X3) -> mark# X1) (mark# U22 X -> mark# X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (mark# U22 X -> mark# X, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (mark# U22 X -> mark# X, mark# and(X1, X2) -> mark# X1) (mark# U22 X -> mark# X, mark# and(X1, X2) -> active# and(mark X1, X2)) (mark# U22 X -> mark# X, mark# and(X1, X2) -> and#(mark X1, X2)) (mark# U22 X -> mark# X, mark# 0() -> active# 0()) (mark# U22 X -> mark# X, mark# isNatKind X -> active# isNatKind X) (active# U41(tt(), M, N) -> plus#(N, M), plus#(X1, mark X2) -> plus#(X1, X2)) (active# U41(tt(), M, N) -> plus#(N, M), plus#(X1, active X2) -> plus#(X1, X2)) (active# U41(tt(), M, N) -> plus#(N, M), plus#(mark X1, X2) -> plus#(X1, X2)) (active# U41(tt(), M, N) -> plus#(N, M), plus#(active X1, X2) -> plus#(X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# isNat X -> active# isNat X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (mark# U41(X1, X2, X3) -> mark# X1, mark# tt() -> active# tt()) (mark# U41(X1, X2, X3) -> mark# X1, mark# U13 X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U13 X -> active# U13 mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U13 X -> U13# mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U22 X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U22 X -> active# U22 mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U22 X -> U22# mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# s X -> mark# X) (mark# U41(X1, X2, X3) -> mark# X1, mark# s X -> active# s mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# s X -> s# mark X) (mark# U41(X1, X2, X3) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# U41(X1, X2, X3) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (mark# U41(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U41(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2)) (mark# U41(X1, X2, X3) -> mark# X1, mark# 0() -> active# 0()) (mark# U41(X1, X2, X3) -> mark# X1, mark# isNatKind X -> active# isNatKind X) (mark# U31(X1, X2) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# isNat X -> active# isNat X) (mark# U31(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (mark# U31(X1, X2) -> mark# X1, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (mark# U31(X1, X2) -> mark# X1, mark# tt() -> active# tt()) (mark# U31(X1, X2) -> mark# X1, mark# U13 X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# U13 X -> active# U13 mark X) (mark# U31(X1, X2) -> mark# X1, mark# U13 X -> U13# mark X) (mark# U31(X1, X2) -> mark# X1, mark# U22 X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# U22 X -> active# U22 mark X) (mark# U31(X1, X2) -> mark# X1, mark# U22 X -> U22# mark X) (mark# U31(X1, X2) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# s X -> mark# X) (mark# U31(X1, X2) -> mark# X1, mark# s X -> active# s mark X) (mark# U31(X1, X2) -> mark# X1, mark# s X -> s# mark X) (mark# U31(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# U31(X1, X2) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# U31(X1, X2) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# U31(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (mark# U31(X1, X2) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (mark# U31(X1, X2) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U31(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2)) (mark# U31(X1, X2) -> mark# X1, mark# 0() -> active# 0()) (mark# U31(X1, X2) -> mark# X1, mark# isNatKind X -> active# isNatKind X) (mark# U11(X1, X2, X3) -> mark# X1, mark# U12(X1, X2) -> mark# X1) (mark# U11(X1, X2, X3) -> mark# X1, mark# U12(X1, X2) -> U12#(mark X1, X2)) (mark# U11(X1, X2, X3) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2)) (mark# U11(X1, X2, X3) -> mark# X1, mark# isNat X -> active# isNat X) (mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> mark# X1) (mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (mark# U11(X1, X2, X3) -> mark# X1, mark# tt() -> active# tt()) (mark# U11(X1, X2, X3) -> mark# X1, mark# U13 X -> mark# X) (mark# U11(X1, X2, X3) -> mark# X1, mark# U13 X -> active# U13 mark X) (mark# U11(X1, X2, X3) -> mark# X1, mark# U13 X -> U13# mark X) (mark# U11(X1, X2, X3) -> mark# X1, mark# U22 X -> mark# X) (mark# U11(X1, X2, X3) -> mark# X1, mark# U22 X -> active# U22 mark X) (mark# U11(X1, X2, X3) -> mark# X1, mark# U22 X -> U22# mark X) (mark# U11(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> mark# X1) (mark# U11(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2)) (mark# U11(X1, X2, X3) -> mark# X1, mark# U21(X1, X2) -> U21#(mark X1, X2)) (mark# U11(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> mark# X1) (mark# U11(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2)) (mark# U11(X1, X2, X3) -> mark# X1, mark# U31(X1, X2) -> U31#(mark X1, X2)) (mark# U11(X1, X2, X3) -> mark# X1, mark# s X -> mark# X) (mark# U11(X1, X2, X3) -> mark# X1, mark# s X -> active# s mark X) (mark# U11(X1, X2, X3) -> mark# X1, mark# s X -> s# mark X) (mark# U11(X1, X2, X3) -> mark# X1, mark# plus(X1, X2) -> mark# X1) (mark# U11(X1, X2, X3) -> mark# X1, mark# plus(X1, X2) -> mark# X2) (mark# U11(X1, X2, X3) -> mark# X1, mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (mark# U11(X1, X2, X3) -> mark# X1, mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (mark# U11(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> mark# X1) (mark# U11(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (mark# U11(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (mark# U11(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> mark# X1) (mark# U11(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2)) (mark# U11(X1, X2, X3) -> mark# X1, mark# and(X1, X2) -> and#(mark X1, X2)) (mark# U11(X1, X2, X3) -> mark# X1, mark# 0() -> active# 0()) (mark# U11(X1, X2, X3) -> mark# X1, mark# isNatKind X -> active# isNatKind X) (active# isNatKind plus(V1, V2) -> isNatKind# V1, isNatKind# mark X -> isNatKind# X) (active# isNatKind plus(V1, V2) -> isNatKind# V1, isNatKind# active X -> isNatKind# X) (active# U21(tt(), V1) -> isNat# V1, isNat# mark X -> isNat# X) (active# U21(tt(), V1) -> isNat# V1, isNat# active X -> isNat# X) (active# U11(tt(), V1, V2) -> U12#(isNat V1, V2), U12#(X1, mark X2) -> U12#(X1, X2)) (active# U11(tt(), V1, V2) -> U12#(isNat V1, V2), U12#(X1, active X2) -> U12#(X1, X2)) (active# U11(tt(), V1, V2) -> U12#(isNat V1, V2), U12#(mark X1, X2) -> U12#(X1, X2)) (active# U11(tt(), V1, V2) -> U12#(isNat V1, V2), U12#(active X1, X2) -> U12#(X1, X2)) (active# isNat s V1 -> isNatKind# V1, isNatKind# mark X -> isNatKind# X) (active# isNat s V1 -> isNatKind# V1, isNatKind# active X -> isNatKind# X) (active# U22 tt() -> mark# tt(), mark# U12(X1, X2) -> mark# X1) (active# U22 tt() -> mark# tt(), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U22 tt() -> mark# tt(), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U22 tt() -> mark# tt(), mark# isNat X -> active# isNat X) (active# U22 tt() -> mark# tt(), mark# U11(X1, X2, X3) -> mark# X1) (active# U22 tt() -> mark# tt(), mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# U22 tt() -> mark# tt(), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# U22 tt() -> mark# tt(), mark# tt() -> active# tt()) (active# U22 tt() -> mark# tt(), mark# U13 X -> mark# X) (active# U22 tt() -> mark# tt(), mark# U13 X -> active# U13 mark X) (active# U22 tt() -> mark# tt(), mark# U13 X -> U13# mark X) (active# U22 tt() -> mark# tt(), mark# U22 X -> mark# X) (active# U22 tt() -> mark# tt(), mark# U22 X -> active# U22 mark X) (active# U22 tt() -> mark# tt(), mark# U22 X -> U22# mark X) (active# U22 tt() -> mark# tt(), mark# U21(X1, X2) -> mark# X1) (active# U22 tt() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# U22 tt() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# U22 tt() -> mark# tt(), mark# U31(X1, X2) -> mark# X1) (active# U22 tt() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# U22 tt() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# U22 tt() -> mark# tt(), mark# s X -> mark# X) (active# U22 tt() -> mark# tt(), mark# s X -> active# s mark X) (active# U22 tt() -> mark# tt(), mark# s X -> s# mark X) (active# U22 tt() -> mark# tt(), mark# plus(X1, X2) -> mark# X1) (active# U22 tt() -> mark# tt(), mark# plus(X1, X2) -> mark# X2) (active# U22 tt() -> mark# tt(), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# U22 tt() -> mark# tt(), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# U22 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1) (active# U22 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# U22 tt() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# U22 tt() -> mark# tt(), mark# and(X1, X2) -> mark# X1) (active# U22 tt() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2)) (active# U22 tt() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2)) (active# U22 tt() -> mark# tt(), mark# 0() -> active# 0()) (active# U22 tt() -> mark# tt(), mark# isNatKind X -> active# isNatKind X) (active# isNat 0() -> mark# tt(), mark# U12(X1, X2) -> mark# X1) (active# isNat 0() -> mark# tt(), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# isNat 0() -> mark# tt(), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# isNat 0() -> mark# tt(), mark# isNat X -> active# isNat X) (active# isNat 0() -> mark# tt(), mark# U11(X1, X2, X3) -> mark# X1) (active# isNat 0() -> mark# tt(), mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# isNat 0() -> mark# tt(), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# isNat 0() -> mark# tt(), mark# tt() -> active# tt()) (active# isNat 0() -> mark# tt(), mark# U13 X -> mark# X) (active# isNat 0() -> mark# tt(), mark# U13 X -> active# U13 mark X) (active# isNat 0() -> mark# tt(), mark# U13 X -> U13# mark X) (active# isNat 0() -> mark# tt(), mark# U22 X -> mark# X) (active# isNat 0() -> mark# tt(), mark# U22 X -> active# U22 mark X) (active# isNat 0() -> mark# tt(), mark# U22 X -> U22# mark X) (active# isNat 0() -> mark# tt(), mark# U21(X1, X2) -> mark# X1) (active# isNat 0() -> mark# tt(), mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# isNat 0() -> mark# tt(), mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# isNat 0() -> mark# tt(), mark# U31(X1, X2) -> mark# X1) (active# isNat 0() -> mark# tt(), mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# isNat 0() -> mark# tt(), mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# isNat 0() -> mark# tt(), mark# s X -> mark# X) (active# isNat 0() -> mark# tt(), mark# s X -> active# s mark X) (active# isNat 0() -> mark# tt(), mark# s X -> s# mark X) (active# isNat 0() -> mark# tt(), mark# plus(X1, X2) -> mark# X1) (active# isNat 0() -> mark# tt(), mark# plus(X1, X2) -> mark# X2) (active# isNat 0() -> mark# tt(), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# isNat 0() -> mark# tt(), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# isNat 0() -> mark# tt(), mark# U41(X1, X2, X3) -> mark# X1) (active# isNat 0() -> mark# tt(), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# isNat 0() -> mark# tt(), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# isNat 0() -> mark# tt(), mark# and(X1, X2) -> mark# X1) (active# isNat 0() -> mark# tt(), mark# and(X1, X2) -> active# and(mark X1, X2)) (active# isNat 0() -> mark# tt(), mark# and(X1, X2) -> and#(mark X1, X2)) (active# isNat 0() -> mark# tt(), mark# 0() -> active# 0()) (active# isNat 0() -> mark# tt(), mark# isNatKind X -> active# isNatKind X) (mark# tt() -> active# tt(), active# U12(tt(), V2) -> mark# U13 isNat V2) (mark# tt() -> active# tt(), active# U12(tt(), V2) -> isNat# V2) (mark# tt() -> active# tt(), active# U12(tt(), V2) -> U13# isNat V2) (mark# tt() -> active# tt(), active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# tt() -> active# tt(), active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# tt() -> active# tt(), active# isNat s V1 -> isNatKind# V1) (mark# tt() -> active# tt(), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# tt() -> active# tt(), active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# tt() -> active# tt(), active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# tt() -> active# tt(), active# isNat plus(V1, V2) -> isNatKind# V1) (mark# tt() -> active# tt(), active# isNat plus(V1, V2) -> isNatKind# V2) (mark# tt() -> active# tt(), active# isNat 0() -> mark# tt()) (mark# tt() -> active# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# tt() -> active# tt(), active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# tt() -> active# tt(), active# U11(tt(), V1, V2) -> isNat# V1) (mark# tt() -> active# tt(), active# U13 tt() -> mark# tt()) (mark# tt() -> active# tt(), active# U22 tt() -> mark# tt()) (mark# tt() -> active# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# tt() -> active# tt(), active# U21(tt(), V1) -> isNat# V1) (mark# tt() -> active# tt(), active# U21(tt(), V1) -> U22# isNat V1) (mark# tt() -> active# tt(), active# U31(tt(), N) -> mark# N) (mark# tt() -> active# tt(), active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# tt() -> active# tt(), active# plus(N, s M) -> isNat# N) (mark# tt() -> active# tt(), active# plus(N, s M) -> isNat# M) (mark# tt() -> active# tt(), active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# tt() -> active# tt(), active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# tt() -> active# tt(), active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# tt() -> active# tt(), active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# tt() -> active# tt(), active# plus(N, s M) -> isNatKind# N) (mark# tt() -> active# tt(), active# plus(N, s M) -> isNatKind# M) (mark# tt() -> active# tt(), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# tt() -> active# tt(), active# plus(N, 0()) -> isNat# N) (mark# tt() -> active# tt(), active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# tt() -> active# tt(), active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# tt() -> active# tt(), active# plus(N, 0()) -> isNatKind# N) (mark# tt() -> active# tt(), active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# tt() -> active# tt(), active# U41(tt(), M, N) -> s# plus(N, M)) (mark# tt() -> active# tt(), active# U41(tt(), M, N) -> plus#(N, M)) (mark# tt() -> active# tt(), active# and(tt(), X) -> mark# X) (mark# tt() -> active# tt(), active# isNatKind s V1 -> mark# isNatKind V1) (mark# tt() -> active# tt(), active# isNatKind s V1 -> isNatKind# V1) (mark# tt() -> active# tt(), active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# tt() -> active# tt(), active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# tt() -> active# tt(), active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# tt() -> active# tt(), active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# tt() -> active# tt(), active# isNatKind 0() -> mark# tt()) (active# U41(tt(), M, N) -> s# plus(N, M), s# mark X -> s# X) (active# U41(tt(), M, N) -> s# plus(N, M), s# active X -> s# X) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U12(X1, X2) -> mark# X1) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U12(X1, X2) -> U12#(mark X1, X2)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U12(X1, X2) -> active# U12(mark X1, X2)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# isNat X -> active# isNat X) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U11(X1, X2, X3) -> mark# X1) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U11(X1, X2, X3) -> U11#(mark X1, X2, X3)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# tt() -> active# tt()) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U13 X -> mark# X) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U13 X -> active# U13 mark X) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U13 X -> U13# mark X) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U22 X -> mark# X) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U22 X -> active# U22 mark X) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U22 X -> U22# mark X) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U21(X1, X2) -> mark# X1) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U21(X1, X2) -> active# U21(mark X1, X2)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U21(X1, X2) -> U21#(mark X1, X2)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U31(X1, X2) -> mark# X1) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U31(X1, X2) -> active# U31(mark X1, X2)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U31(X1, X2) -> U31#(mark X1, X2)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# s X -> mark# X) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# s X -> active# s mark X) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# s X -> s# mark X) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# plus(X1, X2) -> mark# X1) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# plus(X1, X2) -> mark# X2) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# plus(X1, X2) -> active# plus(mark X1, mark X2)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# plus(X1, X2) -> plus#(mark X1, mark X2)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U41(X1, X2, X3) -> mark# X1) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# U41(X1, X2, X3) -> U41#(mark X1, X2, X3)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# and(X1, X2) -> mark# X1) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# and(X1, X2) -> active# and(mark X1, X2)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# and(X1, X2) -> and#(mark X1, X2)) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# 0() -> active# 0()) (active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), mark# isNatKind X -> active# isNatKind X) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U12(tt(), V2) -> mark# U13 isNat V2) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U12(tt(), V2) -> isNat# V2) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U12(tt(), V2) -> U13# isNat V2) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat s V1 -> isNatKind# V1) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat plus(V1, V2) -> isNatKind# V1) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat plus(V1, V2) -> isNatKind# V2) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNat 0() -> mark# tt()) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U11(tt(), V1, V2) -> isNat# V1) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U13 tt() -> mark# tt()) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U22 tt() -> mark# tt()) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U21(tt(), V1) -> isNat# V1) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U31(tt(), N) -> mark# N) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, s M) -> isNat# N) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, s M) -> isNat# M) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, s M) -> isNatKind# N) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, s M) -> isNatKind# M) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, 0()) -> isNat# N) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# plus(N, 0()) -> isNatKind# N) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U41(tt(), M, N) -> s# plus(N, M)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# U41(tt(), M, N) -> plus#(N, M)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# and(tt(), X) -> mark# X) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# and(X1, X2) -> active# and(mark X1, X2), active# isNatKind 0() -> mark# tt()) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U12(tt(), V2) -> mark# U13 isNat V2) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U12(tt(), V2) -> isNat# V2) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U12(tt(), V2) -> U13# isNat V2) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat s V1 -> isNatKind# V1) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat plus(V1, V2) -> isNatKind# V1) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat plus(V1, V2) -> isNatKind# V2) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNat 0() -> mark# tt()) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U11(tt(), V1, V2) -> isNat# V1) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U13 tt() -> mark# tt()) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U22 tt() -> mark# tt()) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U21(tt(), V1) -> isNat# V1) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U31(tt(), N) -> mark# N) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, s M) -> isNat# N) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, s M) -> isNat# M) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, s M) -> isNatKind# N) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, s M) -> isNatKind# M) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, 0()) -> isNat# N) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# plus(N, 0()) -> isNatKind# N) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U41(tt(), M, N) -> s# plus(N, M)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# U41(tt(), M, N) -> plus#(N, M)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# and(tt(), X) -> mark# X) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# U31(X1, X2) -> active# U31(mark X1, X2), active# isNatKind 0() -> mark# tt()) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U12(tt(), V2) -> mark# U13 isNat V2) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U12(tt(), V2) -> isNat# V2) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U12(tt(), V2) -> U13# isNat V2) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNat s V1 -> mark# U21(isNatKind V1, V1)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNat s V1 -> U21#(isNatKind V1, V1)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNat s V1 -> isNatKind# V1) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNat plus(V1, V2) -> U11#(and(isNatKind V1, isNatKind V2), V1, V2)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNat plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNat plus(V1, V2) -> isNatKind# V1) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNat plus(V1, V2) -> isNatKind# V2) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNat 0() -> mark# tt()) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U11(tt(), V1, V2) -> U12#(isNat V1, V2)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U11(tt(), V1, V2) -> isNat# V1) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U13 tt() -> mark# tt()) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U22 tt() -> mark# tt()) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U21(tt(), V1) -> mark# U22 isNat V1) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U21(tt(), V1) -> isNat# V1) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U21(tt(), V1) -> U22# isNat V1) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U31(tt(), N) -> mark# N) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, s M) -> isNat# N) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, s M) -> isNat# M) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, s M) -> and#(isNat N, isNatKind N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, s M) -> and#(isNat M, isNatKind M)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, s M) -> and#(and(isNat M, isNatKind M), and(isNat N, isNatKind N))) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, s M) -> isNatKind# N) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, s M) -> isNatKind# M) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, 0()) -> isNat# N) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, 0()) -> U31#(and(isNat N, isNatKind N), N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, 0()) -> and#(isNat N, isNatKind N)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# plus(N, 0()) -> isNatKind# N) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U41(tt(), M, N) -> mark# s plus(N, M)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U41(tt(), M, N) -> s# plus(N, M)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# U41(tt(), M, N) -> plus#(N, M)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# and(tt(), X) -> mark# X) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNatKind s V1 -> mark# isNatKind V1) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNatKind s V1 -> isNatKind# V1) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNatKind plus(V1, V2) -> and#(isNatKind V1, isNatKind V2)) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNatKind plus(V1, V2) -> isNatKind# V1) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNatKind plus(V1, V2) -> isNatKind# V2) (mark# U12(X1, X2) -> active# U12(mark X1, X2), active# isNatKind 0() -> mark# tt()) (active# isNat plus(V1, V2) -> isNatKind# V2, isNatKind# mark X -> isNatKind# X) (active# isNat plus(V1, V2) -> isNatKind# V2, isNatKind# active X -> isNatKind# X) (active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), U41#(X1, X2, mark X3) -> U41#(X1, X2, X3)) (active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), U41#(X1, X2, active X3) -> U41#(X1, X2, X3)) (active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3)) (active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), U41#(X1, active X2, X3) -> U41#(X1, X2, X3)) (active# plus(N, s M) -> U41#(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), U41#(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#(active X1, X2, X3) -> U41#(X1, X2, X3)) (and#(mark X1, X2) -> and#(X1, X2), and#(X1, mark X2) -> and#(X1, X2)) (and#(mark X1, X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2)) (and#(mark X1, X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2)) (and#(mark X1, X2) -> and#(X1, X2), and#(active X1, X2) -> and#(X1, X2)) (and#(X1, mark X2) -> and#(X1, X2), and#(X1, mark X2) -> and#(X1, X2)) (and#(X1, mark X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2)) (and#(X1, mark X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2)) (and#(X1, mark X2) -> and#(X1, X2), and#(active X1, X2) -> and#(X1, X2)) (plus#(mark X1, X2) -> plus#(X1, X2), plus#(X1, mark X2) -> plus#(X1, X2)) (plus#(mark X1, X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)) (plus#(mark X1, X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (plus#(mark X1, X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)) (plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, mark X2) -> plus#(X1, X2)) (plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)) (plus#(X1, mark X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (plus#(X1, mark X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)) (U31#(mark X1, X2) -> U31#(X1, X2), U31#(X1, mark X2) -> U31#(X1, X2)) (U31#(mark X1, X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2)) (U31#(mark X1, X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)) (U31#(mark X1, X2) -> U31#(X1, X2), U31#(active X1, X2) -> U31#(X1, X2)) (U31#(X1, mark X2) -> U31#(X1, X2), U31#(X1, mark X2) -> U31#(X1, X2)) (U31#(X1, mark X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2)) (U31#(X1, mark X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)) (U31#(X1, mark X2) -> U31#(X1, X2), U31#(active X1, X2) -> U31#(X1, X2)) (U21#(mark X1, X2) -> U21#(X1, X2), U21#(X1, mark X2) -> U21#(X1, X2)) (U21#(mark X1, X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2)) (U21#(mark X1, X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)) (U21#(mark X1, X2) -> U21#(X1, X2), U21#(active X1, X2) -> U21#(X1, X2)) (U21#(X1, mark X2) -> U21#(X1, X2), U21#(X1, mark X2) -> U21#(X1, X2)) (U21#(X1, mark X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2)) (U21#(X1, mark X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)) (U21#(X1, mark X2) -> U21#(X1, X2), U21#(active X1, X2) -> U21#(X1, X2)) (U12#(mark X1, X2) -> U12#(X1, X2), U12#(X1, mark X2) -> U12#(X1, X2)) (U12#(mark X1, X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)) (U12#(mark X1, X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)) (U12#(mark X1, X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)) (U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, mark X2) -> U12#(X1, X2)) (U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)) (U12#(X1, mark X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)) (U12#(X1, mark X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)) (active# plus(N, 0()) -> and#(isNat N, isNatKind N), and#(X1, mark X2) -> and#(X1, X2)) (active# plus(N, 0()) -> and#(isNat N, isNatKind N), and#(X1, active X2) -> and#(X1, X2)) (active# plus(N, 0()) -> and#(isNat N, isNatKind N), and#(mark X1, X2) -> and#(X1, X2)) (active# plus(N, 0()) -> and#(isNat N, isNatKind N), and#(active X1, X2) -> and#(X1, X2)) (active# plus(N, s M) -> and#(isNat N, isNatKind N), and#(X1, mark X2) -> and#(X1, X2)) (active# plus(N, s M) -> and#(isNat N, isNatKind N), and#(X1, active X2) -> and#(X1, X2)) (active# plus(N, s M) -> and#(isNat N, isNatKind N), and#(mark X1, X2) -> and#(X1, X2)) (active# plus(N, s M) -> and#(isNat N, isNatKind N), and#(active X1, X2) -> and#(X1, X2)) (mark# plus(X1, X2) -> plus#(mark X1, mark X2), plus#(X1, mark X2) -> plus#(X1, X2)) (mark# plus(X1, X2) -> plus#(mark X1, mark X2), plus#(X1, active X2) -> plus#(X1, X2)) (mark# plus(X1, X2) -> plus#(mark X1, mark X2), plus#(mark X1, X2) -> plus#(X1, X2)) (mark# plus(X1, X2) -> plus#(mark X1, mark X2), plus#(active X1, X2) -> plus#(X1, X2)) (mark# U31(X1, X2) -> U31#(mark X1, X2), U31#(X1, mark X2) -> U31#(X1, X2)) (mark# U31(X1, X2) -> U31#(mark X1, X2), U31#(X1, active X2) -> U31#(X1, X2)) (mark# U31(X1, X2) -> U31#(mark X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)) (mark# U31(X1, X2) -> U31#(mark X1, X2), U31#(active X1, X2) -> U31#(X1, X2)) (mark# U12(X1, X2) -> U12#(mark X1, X2), U12#(X1, mark X2) -> U12#(X1, X2)) (mark# U12(X1, X2) -> U12#(mark X1, X2), U12#(X1, active X2) -> U12#(X1, X2)) (mark# U12(X1, X2) -> U12#(mark X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)) (mark# U12(X1, X2) -> U12#(mark X1, X2), U12#(active X1, X2) -> U12#(X1, X2)) } STATUS: arrows: 0.875273 SCCS (13): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# tt() -> active# tt(), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# 0() -> active# 0(), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# U31(tt(), N) -> mark# N, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} Scc: { s# mark X -> s# X, s# active X -> s# X} Scc: { U22# mark X -> U22# X, U22# active X -> U22# X} Scc: { U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(active X1, X2, X3) -> U11#(X1, X2, X3)} Scc: { U13# mark X -> U13# X, U13# active X -> U13# X} Scc: { isNatKind# mark X -> isNatKind# X, isNatKind# active X -> isNatKind# X} Scc: { isNat# mark X -> isNat# X, isNat# active X -> isNat# X} Scc: { U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3)} Scc: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)} Scc: { and#(X1, mark X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2), and#(active X1, X2) -> and#(X1, X2)} Scc: { U31#(X1, mark X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2), U31#(active X1, X2) -> U31#(X1, X2)} Scc: { U21#(X1, mark X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2), U21#(active X1, X2) -> U21#(X1, X2)} Scc: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)} SCC (41): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# tt() -> active# tt(), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# 0() -> active# 0(), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# U31(tt(), N) -> mark# N, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 1, [U41](x0, x1, x2) = 1, [U12](x0, x1) = 1, [U21](x0, x1) = 1, [U31](x0, x1) = 1, [plus](x0, x1) = 1, [and](x0, x1) = 1, [mark](x0) = 0, [isNat](x0) = 1, [active](x0) = 0, [U13](x0) = 1, [U22](x0) = 1, [s](x0) = 1, [isNatKind](x0) = 1, [tt] = 1, [0] = 0, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 1 >= 1 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 1 + 0V1 >= 1 + 0V1 active# and(tt(), X) -> mark# X 1 + 0X >= 1 + 0X active# U41(tt(), M, N) -> mark# s plus(N, M) 1 + 0N + 0M >= 1 + 0N + 0M active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N) 1 + 0N >= 1 + 0N active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 1 + 0N + 0M active# U31(tt(), N) -> mark# N 1 + 0N >= 1 + 0N active# U21(tt(), V1) -> mark# U22 isNat V1 1 + 0V1 >= 1 + 0V1 active# U22 tt() -> mark# tt() 1 >= 1 active# U13 tt() -> mark# tt() 1 >= 1 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active# isNat 0() -> mark# tt() 1 >= 1 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active# isNat s V1 -> mark# U21(isNatKind V1, V1) 1 + 0V1 >= 1 + 0V1 active# U12(tt(), V2) -> mark# U13 isNat V2 1 + 0V2 >= 1 + 0V2 mark# isNatKind X -> active# isNatKind X 1 + 0X >= 1 + 0X mark# 0() -> active# 0() 1 >= 0 mark# and(X1, X2) -> active# and(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# and(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark# U41(X1, X2, X3) -> mark# X1 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# plus(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# plus(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# s X -> active# s mark X 1 + 0X >= 1 + 0X mark# s X -> mark# X 1 + 0X >= 1 + 0X mark# U31(X1, X2) -> active# U31(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U31(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# U21(X1, X2) -> active# U21(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U21(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# U22 X -> active# U22 mark X 1 + 0X >= 1 + 0X mark# U22 X -> mark# X 1 + 0X >= 1 + 0X mark# U13 X -> active# U13 mark X 1 + 0X >= 1 + 0X mark# U13 X -> mark# X 1 + 0X >= 1 + 0X mark# tt() -> active# tt() 1 >= 1 mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark# U11(X1, X2, X3) -> mark# X1 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 mark# isNat X -> active# isNat X 1 + 0X >= 1 + 0X mark# U12(X1, X2) -> active# U12(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U12(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 Weak: isNatKind active X -> isNatKind X 1 + 0X >= 1 + 0X isNatKind mark X -> isNatKind X 1 + 0X >= 1 + 0X and(active X1, X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s active X -> s X 1 + 0X >= 1 + 0X s mark X -> s X 1 + 0X >= 1 + 0X U31(active X1, X2) -> U31(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22 active X -> U22 X 1 + 0X >= 1 + 0X U22 mark X -> U22 X 1 + 0X >= 1 + 0X U13 active X -> U13 X 1 + 0X >= 1 + 0X U13 mark X -> U13 X 1 + 0X >= 1 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 0X >= 0 + 0X active U41(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U21(tt(), V1) -> mark U22 isNat V1 0 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 1 + 0X >= 1 + 0X isNat mark X -> isNat X 1 + 0X >= 1 + 0X U12(active X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 0 >= 0 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 0 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 0 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 0 + 0X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 0 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# tt() -> active# tt(), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# U31(tt(), N) -> mark# N, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} SCC (40): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# tt() -> active# tt(), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# U31(tt(), N) -> mark# N, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0, [U41](x0, x1, x2) = x0 + x1 + x2, [U12](x0, x1) = x0, [U21](x0, x1) = x0, [U31](x0, x1) = x0 + x1, [plus](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = x0, [s](x0) = x0, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 0 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 0V1 >= 0 + 0V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U41(tt(), M, N) -> mark# s plus(N, M) 0 + 1N + 1M >= 0 + 1N + 1M active# plus(N, 0()) -> mark# U31(and(isNat N, isNatKind N), N) 1 + 1N >= 0 + 1N active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 0 + 1N + 1M >= 0 + 1N + 1M active# U31(tt(), N) -> mark# N 0 + 1N >= 0 + 1N active# U21(tt(), V1) -> mark# U22 isNat V1 0 + 0V1 >= 0 + 0V1 active# U22 tt() -> mark# tt() 0 >= 0 active# U13 tt() -> mark# tt() 0 >= 0 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNat 0() -> mark# tt() 0 >= 0 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNat s V1 -> mark# U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 0V2 >= 0 + 0V2 mark# isNatKind X -> active# isNatKind X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark# U41(X1, X2, X3) -> mark# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# plus(X1, X2) -> mark# X2 0 + 1X1 + 1X2 >= 0 + 1X2 mark# plus(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# s X -> active# s mark X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# U31(X1, X2) -> active# U31(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U31(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U21(X1, X2) -> active# U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U21(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U22 X -> active# U22 mark X 0 + 1X >= 0 + 1X mark# U22 X -> mark# X 0 + 1X >= 0 + 1X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# tt() -> active# tt() 0 >= 0 mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark# U11(X1, X2, X3) -> mark# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 mark# isNat X -> active# isNat X 0 + 0X >= 0 + 0X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U22 active X -> U22 X 0 + 1X >= 0 + 1X U22 mark X -> U22 X 0 + 1X >= 0 + 1X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 0 + 1N + 1M >= 0 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 0 + 1N + 1M >= 0 + 1N + 1M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 1 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U22 X -> active U22 mark X 0 + 1X >= 0 + 1X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 0 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# tt() -> active# tt(), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# U31(tt(), N) -> mark# N, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} SCC (39): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# tt() -> active# tt(), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# U31(X1, X2) -> mark# X1, mark# U31(X1, X2) -> active# U31(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# U31(tt(), N) -> mark# N, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0, [U41](x0, x1, x2) = x0 + x1 + x2, [U12](x0, x1) = x0, [U21](x0, x1) = x0, [U31](x0, x1) = x0 + x1 + 1, [plus](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = x0, [s](x0) = x0, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 0 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 0V1 >= 0 + 0V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U41(tt(), M, N) -> mark# s plus(N, M) 0 + 1N + 1M >= 0 + 1N + 1M active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 0 + 1N + 1M >= 0 + 1N + 1M active# U31(tt(), N) -> mark# N 1 + 1N >= 0 + 1N active# U21(tt(), V1) -> mark# U22 isNat V1 0 + 0V1 >= 0 + 0V1 active# U22 tt() -> mark# tt() 0 >= 0 active# U13 tt() -> mark# tt() 0 >= 0 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNat 0() -> mark# tt() 0 >= 0 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNat s V1 -> mark# U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 0V2 >= 0 + 0V2 mark# isNatKind X -> active# isNatKind X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark# U41(X1, X2, X3) -> mark# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# plus(X1, X2) -> mark# X2 0 + 1X1 + 1X2 >= 0 + 1X2 mark# plus(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# s X -> active# s mark X 0 + 1X >= 0 + 1X mark# s X -> mark# X 0 + 1X >= 0 + 1X mark# U31(X1, X2) -> active# U31(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark# U31(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U21(X1, X2) -> active# U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U21(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U22 X -> active# U22 mark X 0 + 1X >= 0 + 1X mark# U22 X -> mark# X 0 + 1X >= 0 + 1X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# tt() -> active# tt() 0 >= 0 mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark# U11(X1, X2, X3) -> mark# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 mark# isNat X -> active# isNat X 0 + 0X >= 0 + 0X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U31(active X1, X2) -> U31(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U22 active X -> U22 X 0 + 1X >= 0 + 1X U22 mark X -> U22 X 0 + 1X >= 0 + 1X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 0 + 1N + 1M >= 0 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 1N >= 1 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 0 + 1N + 1M >= 0 + 1N + 1M active U31(tt(), N) -> mark N 1 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 1 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U22 X -> active U22 mark X 0 + 1X >= 0 + 1X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 0 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# tt() -> active# tt(), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# U31(X1, X2) -> active# U31(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} SCC (37): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# tt() -> active# tt(), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# U31(X1, X2) -> active# U31(mark X1, X2), mark# s X -> mark# X, mark# s X -> active# s mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> mark# X1, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0, [U41](x0, x1, x2) = x0 + x1 + x2 + 1, [U12](x0, x1) = x0, [U21](x0, x1) = x0, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = x0, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 0 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 0V1 >= 0 + 0V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U41(tt(), M, N) -> mark# s plus(N, M) 1 + 1N + 1M >= 1 + 1N + 1M active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 1M >= 1 + 1N + 1M active# U21(tt(), V1) -> mark# U22 isNat V1 0 + 0V1 >= 0 + 0V1 active# U22 tt() -> mark# tt() 0 >= 0 active# U13 tt() -> mark# tt() 0 >= 0 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNat 0() -> mark# tt() 0 >= 0 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNat s V1 -> mark# U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 0V2 >= 0 + 0V2 mark# isNatKind X -> active# isNatKind X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 mark# U41(X1, X2, X3) -> mark# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# plus(X1, X2) -> mark# X2 0 + 1X1 + 1X2 >= 0 + 1X2 mark# plus(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# s X -> active# s mark X 1 + 1X >= 1 + 1X mark# s X -> mark# X 1 + 1X >= 0 + 1X mark# U31(X1, X2) -> active# U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark# U21(X1, X2) -> active# U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U21(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U22 X -> active# U22 mark X 0 + 1X >= 0 + 1X mark# U22 X -> mark# X 0 + 1X >= 0 + 1X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# tt() -> active# tt() 0 >= 0 mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark# U11(X1, X2, X3) -> mark# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 mark# isNat X -> active# isNat X 0 + 0X >= 0 + 0X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 1 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U22 active X -> U22 X 0 + 1X >= 0 + 1X U22 mark X -> U22 X 0 + 1X >= 0 + 1X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 1M >= 1 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 0 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 1M >= 1 + 1N + 1M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 0 >= 0 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark s X -> active s mark X 1 + 1X >= 1 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U22 X -> active U22 mark X 0 + 1X >= 0 + 1X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 0 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# tt() -> active# tt(), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# U31(X1, X2) -> active# U31(mark X1, X2), mark# s X -> active# s mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} SCC (35): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# tt() -> active# tt(), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# U31(X1, X2) -> active# U31(mark X1, X2), mark# s X -> active# s mark X, mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 1, [U41](x0, x1, x2) = 1, [U12](x0, x1) = 1, [U21](x0, x1) = 1, [U31](x0, x1) = 0, [plus](x0, x1) = 1, [and](x0, x1) = 1, [mark](x0) = x0 + 1, [isNat](x0) = 1, [active](x0) = 0, [U13](x0) = 1, [U22](x0) = 1, [s](x0) = 0, [isNatKind](x0) = 1, [tt] = 0, [0] = 1, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 1 >= 1 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 1 + 0V1 >= 1 + 0V1 active# and(tt(), X) -> mark# X 1 + 0X >= 1 + 0X active# U41(tt(), M, N) -> mark# s plus(N, M) 1 + 0N + 0M >= 1 + 0N + 0M active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 1 + 0N + 0M active# U21(tt(), V1) -> mark# U22 isNat V1 1 + 0V1 >= 1 + 0V1 active# U22 tt() -> mark# tt() 1 >= 1 active# U13 tt() -> mark# tt() 1 >= 1 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active# isNat 0() -> mark# tt() 1 >= 1 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active# isNat s V1 -> mark# U21(isNatKind V1, V1) 1 + 0V1 >= 1 + 0V1 active# U12(tt(), V2) -> mark# U13 isNat V2 1 + 0V2 >= 1 + 0V2 mark# isNatKind X -> active# isNatKind X 1 + 0X >= 1 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# and(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# plus(X1, X2) -> mark# X2 1 + 0X1 + 0X2 >= 1 + 0X2 mark# plus(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# s X -> active# s mark X 1 + 0X >= 0 + 0X mark# U31(X1, X2) -> active# U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U21(X1, X2) -> active# U21(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U21(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# U22 X -> active# U22 mark X 1 + 0X >= 1 + 0X mark# U22 X -> mark# X 1 + 0X >= 1 + 0X mark# U13 X -> active# U13 mark X 1 + 0X >= 1 + 0X mark# U13 X -> mark# X 1 + 0X >= 1 + 0X mark# tt() -> active# tt() 1 >= 0 mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark# U11(X1, X2, X3) -> mark# X1 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 mark# isNat X -> active# isNat X 1 + 0X >= 1 + 0X mark# U12(X1, X2) -> active# U12(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U12(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 Weak: isNatKind active X -> isNatKind X 1 + 0X >= 1 + 0X isNatKind mark X -> isNatKind X 1 + 0X >= 1 + 0X and(active X1, X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22 active X -> U22 X 1 + 0X >= 1 + 0X U22 mark X -> U22 X 1 + 0X >= 1 + 0X U13 active X -> U13 X 1 + 0X >= 1 + 0X U13 mark X -> U13 X 1 + 0X >= 1 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 2 + 0V1 active and(tt(), X) -> mark X 0 + 0X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 0 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 0 + 0N + 0M >= 2 + 0N + 0M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 0V1 >= 2 + 0V1 active U22 tt() -> mark tt() 0 >= 1 active U13 tt() -> mark tt() 0 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat 0() -> mark tt() 0 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 0V2 >= 2 + 0V2 isNat active X -> isNat X 1 + 0X >= 1 + 0X isNat mark X -> isNat X 1 + 0X >= 1 + 0X U12(active X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 2 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 0 mark and(X1, X2) -> active and(mark X1, X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark s X -> active s mark X 1 + 0X >= 0 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U22 X -> active U22 mark X 2 + 0X >= 0 + 0X mark U13 X -> active U13 mark X 2 + 0X >= 0 + 0X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 2 + 0X >= 0 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} SCC (32): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# plus(X1, X2) -> mark# X1, mark# plus(X1, X2) -> mark# X2, mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0, [U41](x0, x1, x2) = 1, [U12](x0, x1) = x0, [U21](x0, x1) = x0, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1 + 1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = x0, [s](x0) = 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 0 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 0V1 >= 0 + 0V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U41(tt(), M, N) -> mark# s plus(N, M) 1 + 0N + 0M >= 1 + 0N + 0M active# plus(N, s M) -> mark# U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 1N + 0M >= 1 + 0N + 0M active# U21(tt(), V1) -> mark# U22 isNat V1 0 + 0V1 >= 0 + 0V1 active# U22 tt() -> mark# tt() 0 >= 0 active# U13 tt() -> mark# tt() 0 >= 0 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNat 0() -> mark# tt() 0 >= 0 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNat s V1 -> mark# U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 0V2 >= 0 + 0V2 mark# isNatKind X -> active# isNatKind X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark# plus(X1, X2) -> mark# X2 1 + 1X1 + 1X2 >= 0 + 1X2 mark# plus(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U21(X1, X2) -> active# U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U21(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 mark# U22 X -> active# U22 mark X 0 + 1X >= 0 + 1X mark# U22 X -> mark# X 0 + 1X >= 0 + 1X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark# U11(X1, X2, X3) -> mark# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 mark# isNat X -> active# isNat X 0 + 0X >= 0 + 0X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 s active X -> s X 1 + 0X >= 1 + 0X s mark X -> s X 1 + 0X >= 1 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U22 active X -> U22 X 0 + 1X >= 0 + 1X U22 mark X -> U22 X 0 + 1X >= 0 + 1X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 1 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 0 >= 0 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark s X -> active s mark X 1 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U22 X -> active U22 mark X 0 + 1X >= 0 + 1X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 0 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} SCC (29): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# isNat 0() -> mark# tt(), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + x2, [U41](x0, x1, x2) = x0 + x1, [U12](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = x0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = x0, [s](x0) = x0, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 0 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 0V1 >= 0 + 0V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U41(tt(), M, N) -> mark# s plus(N, M) 0 + 1N + 1M >= 0 + 1N + 1M active# U21(tt(), V1) -> mark# U22 isNat V1 0 + 1V1 >= 0 + 1V1 active# U22 tt() -> mark# tt() 0 >= 0 active# U13 tt() -> mark# tt() 0 >= 0 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# isNat 0() -> mark# tt() 1 >= 0 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# isNat s V1 -> mark# U21(isNatKind V1, V1) 0 + 1V1 >= 0 + 1V1 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 1V2 >= 0 + 1V2 mark# isNatKind X -> active# isNatKind X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U21(X1, X2) -> active# U21(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U21(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U22 X -> active# U22 mark X 0 + 1X >= 0 + 1X mark# U22 X -> mark# X 0 + 1X >= 0 + 1X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark# U11(X1, X2, X3) -> mark# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# isNat X -> active# isNat X 0 + 1X >= 0 + 1X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U21(X1, active X2) -> U21(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U22 active X -> U22 X 0 + 1X >= 0 + 1X U22 mark X -> U22 X 0 + 1X >= 0 + 1X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 0 + 1N + 1M >= 0 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 0 + 1N + 1M >= 0 + 1N + 1M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 1V1 >= 0 + 1V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat 0() -> mark tt() 1 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 1V1 >= 0 + 1V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 1V2 >= 0 + 1V2 isNat active X -> isNat X 0 + 1X >= 0 + 1X isNat mark X -> isNat X 0 + 1X >= 0 + 1X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 1 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U22 X -> active U22 mark X 0 + 1X >= 0 + 1X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark isNat X -> active isNat X 0 + 1X >= 0 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} SCC (28): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> mark# X1, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U21(tt(), V1) -> mark# U22 isNat V1, active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + x2, [U41](x0, x1, x2) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1 + 1, [U31](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = x0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = x0, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 0 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 0V1 >= 0 + 0V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U41(tt(), M, N) -> mark# s plus(N, M) 1 + 1N + 1M >= 1 + 1N + 1M active# U21(tt(), V1) -> mark# U22 isNat V1 1 + 1V1 >= 0 + 1V1 active# U22 tt() -> mark# tt() 0 >= 0 active# U13 tt() -> mark# tt() 0 >= 0 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# isNat s V1 -> mark# U21(isNatKind V1, V1) 1 + 1V1 >= 1 + 1V1 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 1V2 >= 0 + 1V2 mark# isNatKind X -> active# isNatKind X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U21(X1, X2) -> active# U21(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark# U21(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U22 X -> active# U22 mark X 0 + 1X >= 0 + 1X mark# U22 X -> mark# X 0 + 1X >= 0 + 1X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark# U11(X1, X2, X3) -> mark# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# isNat X -> active# isNat X 0 + 1X >= 0 + 1X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 1 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> U21(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22 active X -> U22 X 0 + 1X >= 0 + 1X U22 mark X -> U22 X 0 + 1X >= 0 + 1X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 1M >= 1 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 1N >= 1 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 1M >= 1 + 1N + 1M active U31(tt(), N) -> mark N 1 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 1V1 >= 0 + 1V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat 0() -> mark tt() 1 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 1V1 >= 1 + 1V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 1V2 >= 0 + 1V2 isNat active X -> isNat X 0 + 1X >= 0 + 1X isNat mark X -> isNat X 0 + 1X >= 0 + 1X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 1 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark s X -> active s mark X 1 + 1X >= 1 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark U22 X -> active U22 mark X 0 + 1X >= 0 + 1X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark isNat X -> active isNat X 0 + 1X >= 0 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} SCC (26): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U21(X1, X2) -> active# U21(mark X1, X2), mark# plus(X1, X2) -> active# plus(mark X1, mark X2), mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 1, [U41](x0, x1, x2) = 1, [U12](x0, x1) = 1, [U21](x0, x1) = 0, [U31](x0, x1) = x0 + x1 + 1, [plus](x0, x1) = 0, [and](x0, x1) = 1, [mark](x0) = 1, [isNat](x0) = 1, [active](x0) = 0, [U13](x0) = 1, [U22](x0) = 1, [s](x0) = 0, [isNatKind](x0) = 1, [tt] = 1, [0] = 0, [mark#](x0) = 1, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 1 >= 1 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 1 + 0V1 >= 1 + 0V1 active# and(tt(), X) -> mark# X 1 + 0X >= 1 + 0X active# U41(tt(), M, N) -> mark# s plus(N, M) 1 + 0N + 0M >= 1 + 0N + 0M active# U22 tt() -> mark# tt() 1 >= 1 active# U13 tt() -> mark# tt() 1 >= 1 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active# isNat s V1 -> mark# U21(isNatKind V1, V1) 1 + 0V1 >= 1 + 0V1 active# U12(tt(), V2) -> mark# U13 isNat V2 1 + 0V2 >= 1 + 0V2 mark# isNatKind X -> active# isNatKind X 1 + 0X >= 1 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# and(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark# plus(X1, X2) -> active# plus(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U21(X1, X2) -> active# U21(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark# U22 X -> active# U22 mark X 1 + 0X >= 1 + 0X mark# U22 X -> mark# X 1 + 0X >= 1 + 0X mark# U13 X -> active# U13 mark X 1 + 0X >= 1 + 0X mark# U13 X -> mark# X 1 + 0X >= 1 + 0X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark# U11(X1, X2, X3) -> mark# X1 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 mark# isNat X -> active# isNat X 1 + 0X >= 1 + 0X mark# U12(X1, X2) -> active# U12(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark# U12(X1, X2) -> mark# X1 1 + 0X1 + 0X2 >= 1 + 0X1 Weak: isNatKind active X -> isNatKind X 1 + 0X >= 1 + 0X isNatKind mark X -> isNatKind X 1 + 0X >= 1 + 0X and(active X1, X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 1X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 2 + 0X1 + 1X2 >= 1 + 1X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 1 + 0X >= 1 + 0X U22 mark X -> U22 X 1 + 0X >= 1 + 0X U13 active X -> U13 X 1 + 0X >= 1 + 0X U13 mark X -> U13 X 1 + 0X >= 1 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 0 + 0X >= 1 + 0X active U41(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 0 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 0N active U21(tt(), V1) -> mark U22 isNat V1 0 + 0V1 >= 1 + 0V1 active U22 tt() -> mark tt() 0 >= 1 active U13 tt() -> mark tt() 0 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNat 0() -> mark tt() 0 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 1 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 0V2 >= 1 + 0V2 isNat active X -> isNat X 1 + 0X >= 1 + 0X isNat mark X -> isNat X 1 + 0X >= 1 + 0X U12(active X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 1 >= 0 mark and(X1, X2) -> active and(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark s X -> active s mark X 1 + 0X >= 0 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U22 X -> active U22 mark X 1 + 0X >= 0 + 0X mark U13 X -> active U13 mark X 1 + 0X >= 0 + 0X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 1 + 0X >= 0 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} SCC (24): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), active# U41(tt(), M, N) -> mark# s plus(N, M), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2), active# isNatKind 0() -> mark# tt()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0, [U21](x0, x1) = 0, [U31](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = x0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 0, [0] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 0 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 0V1 >= 0 + 0V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U41(tt(), M, N) -> mark# s plus(N, M) 1 + 1N + 0M >= 0 + 0N + 0M active# U22 tt() -> mark# tt() 0 >= 0 active# U13 tt() -> mark# tt() 0 >= 0 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNat s V1 -> mark# U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 0V2 >= 0 + 0V2 mark# isNatKind X -> active# isNatKind X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 1X3 mark# U22 X -> active# U22 mark X 0 + 1X >= 0 + 1X mark# U22 X -> mark# X 0 + 1X >= 0 + 1X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark# U11(X1, X2, X3) -> mark# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 mark# isNat X -> active# isNat X 0 + 0X >= 0 + 0X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 1X >= 0 + 1X U22 mark X -> U22 X 0 + 1X >= 0 + 1X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 1N >= 1 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 0M >= 1 + 1N + 0M active U31(tt(), N) -> mark N 1 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 0 >= 0 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 0 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 1X >= 0 + 1X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 0 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), 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()} SCC (23): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat s V1 -> mark# U21(isNatKind V1, V1), active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), 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()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + x2, [U41](x0, x1, x2) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1, [U21](x0, x1) = x0, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = x0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = x0, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 0 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 0V1 >= 0 + 0V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U22 tt() -> mark# tt() 0 >= 0 active# U13 tt() -> mark# tt() 0 >= 0 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# isNat s V1 -> mark# U21(isNatKind V1, V1) 1 + 1V1 >= 0 + 1V1 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 1V2 >= 0 + 1V2 mark# isNatKind X -> active# isNatKind X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# U22 X -> active# U22 mark X 0 + 1X >= 0 + 1X mark# U22 X -> mark# X 0 + 1X >= 0 + 1X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark# U11(X1, X2, X3) -> mark# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# isNat X -> active# isNat X 0 + 1X >= 0 + 1X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 1 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U22 active X -> U22 X 0 + 1X >= 0 + 1X U22 mark X -> U22 X 0 + 1X >= 0 + 1X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 1M >= 1 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 0 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 1M >= 1 + 1N + 1M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 1V1 >= 0 + 1V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 1V1 >= 0 + 1V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 1V2 >= 0 + 1V2 isNat active X -> isNat X 0 + 1X >= 0 + 1X isNat mark X -> isNat X 0 + 1X >= 0 + 1X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 0 >= 0 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark s X -> active s mark X 1 + 1X >= 1 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U22 X -> active U22 mark X 0 + 1X >= 0 + 1X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark isNat X -> active isNat X 0 + 1X >= 0 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), 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()} SCC (22): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2), active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), 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()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + x2, [U41](x0, x1, x2) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1, [U21](x0, x1) = x0, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1 + 1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = x0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = x0, [s](x0) = x0, [isNatKind](x0) = 0, [tt] = 0, [0] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 0 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 0V1 >= 0 + 0V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U22 tt() -> mark# tt() 0 >= 0 active# U13 tt() -> mark# tt() 0 >= 0 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# isNat plus(V1, V2) -> mark# U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 1V2 >= 0 + 1V2 mark# isNatKind X -> active# isNatKind X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# U22 X -> active# U22 mark X 0 + 1X >= 0 + 1X mark# U22 X -> mark# X 0 + 1X >= 0 + 1X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark# U11(X1, X2, X3) -> mark# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# isNat X -> active# isNat X 0 + 1X >= 0 + 1X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U22 active X -> U22 X 0 + 1X >= 0 + 1X U22 mark X -> U22 X 0 + 1X >= 0 + 1X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 1M >= 1 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 1M >= 1 + 1N + 1M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 1V1 >= 0 + 1V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 1V1 >= 0 + 1V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 1V2 >= 0 + 1V2 isNat active X -> isNat X 0 + 1X >= 0 + 1X isNat mark X -> isNat X 0 + 1X >= 0 + 1X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 0 >= 0 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U22 X -> active U22 mark X 0 + 1X >= 0 + 1X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark isNat X -> active isNat X 0 + 1X >= 0 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), 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()} SCC (21): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> mark# X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), active# U22 tt() -> mark# tt(), 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()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + x2, [U41](x0, x1, x2) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = x0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 0 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 0V1 >= 0 + 0V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U22 tt() -> mark# tt() 1 >= 0 active# U13 tt() -> mark# tt() 0 >= 0 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 1V2 >= 0 + 1V2 mark# isNatKind X -> active# isNatKind X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# U22 X -> active# U22 mark X 1 + 1X >= 1 + 1X mark# U22 X -> mark# X 1 + 1X >= 0 + 1X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark# U11(X1, X2, X3) -> mark# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# isNat X -> active# isNat X 0 + 1X >= 0 + 1X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 1 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U21(mark X1, X2) -> U21(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U21(X1, active X2) -> U21(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 1 + 1X >= 1 + 1X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 1M >= 1 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 1M >= 1 + 1N + 1M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 1V1 >= 1 + 1V1 active U22 tt() -> mark tt() 1 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat 0() -> mark tt() 1 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 1V1 >= 1 + 1V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 1V2 >= 0 + 1V2 isNat active X -> isNat X 0 + 1X >= 0 + 1X isNat mark X -> isNat X 0 + 1X >= 0 + 1X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 1 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark s X -> active s mark X 1 + 1X >= 1 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 mark U22 X -> active U22 mark X 1 + 1X >= 1 + 1X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 mark isNat X -> active isNat X 0 + 1X >= 0 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), 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()} SCC (19): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> mark# X1, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2), active# U13 tt() -> mark# tt(), 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()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + x2 + 1, [U41](x0, x1, x2) = x0, [U12](x0, x1) = x0 + x1, [U21](x0, x1) = 0, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1 + 1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = x0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 0, [0] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 0 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 0V1 >= 0 + 0V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U13 tt() -> mark# tt() 0 >= 0 active# U11(tt(), V1, V2) -> mark# U12(isNat V1, V2) 1 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 1V2 >= 0 + 1V2 mark# isNatKind X -> active# isNatKind X 0 + 0X >= 0 + 0X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 mark# U22 X -> active# U22 mark X 0 + 0X >= 0 + 0X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 mark# U11(X1, X2, X3) -> mark# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 mark# isNat X -> active# isNat X 0 + 1X >= 0 + 1X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 0 + 1N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 0M >= 0 + 1N + 0M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 1V1 + 1V2 >= 1 + 1V1 + 1V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 1V2 >= 0 + 1V2 isNat active X -> isNat X 0 + 1X >= 0 + 1X isNat mark X -> isNat X 0 + 1X >= 0 + 1X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 0 + 0X mark 0() -> active 0() 0 >= 0 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark s X -> active s mark X 0 + 0X >= 0 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 0 + 0X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 mark isNat X -> active isNat X 0 + 1X >= 0 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U13 tt() -> mark# tt(), 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()} SCC (17): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U13 tt() -> mark# tt(), 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()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = x0 + x1, [U12](x0, x1) = x0, [U21](x0, x1) = 0, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = 0, [s](x0) = x0, [isNatKind](x0) = x0, [tt] = 0, [0] = 1, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind 0() -> mark# tt() 1 >= 0 active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 1V1 >= 0 + 1V1 active# and(tt(), X) -> mark# X 0 + 1X >= 0 + 1X active# U13 tt() -> mark# tt() 0 >= 0 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 0V2 >= 0 + 0V2 mark# isNatKind X -> active# isNatKind X 0 + 1X >= 0 + 1X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 mark# U22 X -> active# U22 mark X 0 + 0X >= 0 + 0X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark# isNat X -> active# isNat X 0 + 0X >= 0 + 0X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 1X >= 0 + 1X isNatKind mark X -> isNatKind X 0 + 1X >= 0 + 1X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNatKind s V1 -> mark isNatKind V1 0 + 1V1 >= 0 + 1V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 0 + 1N + 1M >= 0 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 0 + 1N + 1M >= 0 + 1N + 1M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 1X >= 0 + 1X mark 0() -> active 0() 1 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 0 + 0X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 0 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U13 tt() -> mark# tt(), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)} SCC (16): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U13 tt() -> mark# tt(), active# and(tt(), X) -> mark# X, active# isNatKind s V1 -> mark# isNatKind V1, active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 1, [U41](x0, x1, x2) = x0 + x1 + 1, [U12](x0, x1) = x0, [U21](x0, x1) = 1, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1 + 1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = 1, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = 1, [s](x0) = x0, [isNatKind](x0) = x0, [tt] = 1, [0] = 1, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind plus(V1, V2) -> mark# and(isNatKind V1, isNatKind V2) 1 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active# isNatKind s V1 -> mark# isNatKind V1 0 + 1V1 >= 0 + 1V1 active# and(tt(), X) -> mark# X 1 + 1X >= 0 + 1X active# U13 tt() -> mark# tt() 1 >= 1 active# U12(tt(), V2) -> mark# U13 isNat V2 1 + 0V2 >= 1 + 0V2 mark# isNatKind X -> active# isNatKind X 0 + 1X >= 0 + 1X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# U22 X -> active# U22 mark X 1 + 0X >= 1 + 0X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark# isNat X -> active# isNat X 1 + 0X >= 1 + 0X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 1X >= 0 + 1X isNatKind mark X -> isNatKind X 0 + 1X >= 0 + 1X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22 active X -> U22 X 1 + 0X >= 1 + 0X U22 mark X -> U22 X 1 + 0X >= 1 + 0X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNatKind s V1 -> mark isNatKind V1 0 + 1V1 >= 0 + 1V1 active and(tt(), X) -> mark X 1 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 1M >= 1 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 1M >= 1 + 1N + 1M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 1 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 1 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 1 + 0V2 isNat active X -> isNat X 1 + 0X >= 1 + 0X isNat mark X -> isNat X 1 + 0X >= 1 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 1X >= 0 + 1X mark 0() -> active 0() 1 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 1 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 1 >= 1 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 1 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U13 tt() -> mark# tt(), active# isNatKind s V1 -> mark# isNatKind V1} SCC (14): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U13 tt() -> mark# tt(), active# isNatKind s V1 -> mark# isNatKind V1} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = x0 + x1 + 1, [U12](x0, x1) = x0, [U21](x0, x1) = 0, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0, [U13](x0) = x0, [U22](x0) = 0, [s](x0) = x0 + 1, [isNatKind](x0) = x0, [tt] = 0, [0] = 0, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# isNatKind s V1 -> mark# isNatKind V1 1 + 1V1 >= 0 + 1V1 active# U13 tt() -> mark# tt() 0 >= 0 active# U12(tt(), V2) -> mark# U13 isNat V2 0 + 0V2 >= 0 + 0V2 mark# isNatKind X -> active# isNatKind X 0 + 1X >= 0 + 1X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# U22 X -> active# U22 mark X 0 + 0X >= 0 + 0X mark# U13 X -> active# U13 mark X 0 + 1X >= 0 + 1X mark# U13 X -> mark# X 0 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark# isNat X -> active# isNat X 0 + 0X >= 0 + 0X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 0X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 1X >= 0 + 1X isNatKind mark X -> isNatKind X 0 + 1X >= 0 + 1X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 1 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 1X >= 0 + 1X U13 mark X -> U13 X 0 + 1X >= 0 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNatKind s V1 -> mark isNatKind V1 1 + 1V1 >= 0 + 1V1 active and(tt(), X) -> mark X 0 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 1M >= 1 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 0 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 1M >= 1 + 1N + 1M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 0 >= 0 active U13 tt() -> mark tt() 0 >= 0 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 0 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 1X >= 0 + 1X mark 0() -> active 0() 0 >= 0 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark s X -> active s mark X 1 + 1X >= 1 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 0 + 0X mark U13 X -> active U13 mark X 0 + 1X >= 0 + 1X mark tt() -> active tt() 0 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 0 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U13 tt() -> mark# tt()} SCC (13): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> mark# X, mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2, active# U13 tt() -> mark# tt()} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + x1 + 1, [U12](x0, x1) = x0 + x1, [U21](x0, x1) = x0, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1 + 1, [and](x0, x1) = x0 + x1, [mark](x0) = x0, [isNat](x0) = x0, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0, [s](x0) = x0, [isNatKind](x0) = x0 + 1, [tt] = 1, [0] = 1, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# U13 tt() -> mark# tt() 2 >= 1 active# U12(tt(), V2) -> mark# U13 isNat V2 1 + 1V2 >= 1 + 1V2 mark# isNatKind X -> active# isNatKind X 1 + 1X >= 1 + 1X mark# and(X1, X2) -> active# and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# U22 X -> active# U22 mark X 0 + 1X >= 0 + 1X mark# U13 X -> active# U13 mark X 1 + 1X >= 1 + 1X mark# U13 X -> mark# X 1 + 1X >= 0 + 1X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# isNat X -> active# isNat X 0 + 1X >= 0 + 1X mark# U12(X1, X2) -> active# U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark# U12(X1, X2) -> mark# X1 0 + 1X1 + 1X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 1 + 1X >= 1 + 1X isNatKind mark X -> isNatKind X 1 + 1X >= 1 + 1X and(active X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U22 active X -> U22 X 0 + 1X >= 0 + 1X U22 mark X -> U22 X 0 + 1X >= 0 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 1 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 2 + 1V1 + 1V2 >= 2 + 1V1 + 1V2 active isNatKind s V1 -> mark isNatKind V1 1 + 1V1 >= 1 + 1V1 active and(tt(), X) -> mark X 1 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 1M >= 1 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 1M >= 1 + 1N + 1M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 0 + 1V1 >= 0 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 2 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 1V2 >= 0 + 1V1 + 1V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 1V1 + 1V2 >= 1 + 1V1 + 1V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 1V1 >= 0 + 1V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 1 + 1V2 isNat active X -> isNat X 0 + 1X >= 0 + 1X isNat mark X -> isNat X 0 + 1X >= 0 + 1X U12(active X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 1X >= 1 + 1X mark 0() -> active 0() 1 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U22 X -> active U22 mark X 0 + 1X >= 0 + 1X mark U13 X -> active U13 mark X 1 + 1X >= 1 + 1X mark tt() -> active tt() 1 >= 1 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark isNat X -> active isNat X 0 + 1X >= 0 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 SCCS (1): Scc: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2} SCC (11): Strict: { mark# U12(X1, X2) -> mark# X1, mark# U12(X1, X2) -> active# U12(mark X1, X2), mark# isNat X -> active# isNat X, mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3), mark# U13 X -> active# U13 mark X, mark# U22 X -> active# U22 mark X, mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3), mark# and(X1, X2) -> mark# X1, mark# and(X1, X2) -> active# and(mark X1, X2), mark# isNatKind X -> active# isNatKind X, active# U12(tt(), V2) -> mark# U13 isNat V2} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + 1, [U41](x0, x1, x2) = x0 + x1 + 1, [U12](x0, x1) = x0 + 1, [U21](x0, x1) = x0, [U31](x0, x1) = x0, [plus](x0, x1) = x0 + x1 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0, [isNat](x0) = x0, [active](x0) = x0, [U13](x0) = 1, [U22](x0) = 1, [s](x0) = x0, [isNatKind](x0) = x0, [tt] = 1, [0] = 1, [mark#](x0) = x0, [active#](x0) = x0 Strict: active# U12(tt(), V2) -> mark# U13 isNat V2 2 + 0V2 >= 1 + 0V2 mark# isNatKind X -> active# isNatKind X 0 + 1X >= 0 + 1X mark# and(X1, X2) -> active# and(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark# and(X1, X2) -> mark# X1 1 + 1X1 + 1X2 >= 0 + 1X1 mark# U41(X1, X2, X3) -> active# U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark# U22 X -> active# U22 mark X 1 + 0X >= 1 + 0X mark# U13 X -> active# U13 mark X 1 + 0X >= 1 + 0X mark# U11(X1, X2, X3) -> active# U11(mark X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 1X2 + 0X3 mark# isNat X -> active# isNat X 0 + 1X >= 0 + 1X mark# U12(X1, X2) -> active# U12(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark# U12(X1, X2) -> mark# X1 1 + 1X1 + 0X2 >= 0 + 1X1 Weak: isNatKind active X -> isNatKind X 0 + 1X >= 0 + 1X isNatKind mark X -> isNatKind X 0 + 1X >= 0 + 1X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 plus(active X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 s active X -> s X 0 + 1X >= 0 + 1X s mark X -> s X 0 + 1X >= 0 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21(active X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U22 active X -> U22 X 1 + 0X >= 1 + 0X U22 mark X -> U22 X 1 + 0X >= 1 + 0X U13 active X -> U13 X 1 + 0X >= 1 + 0X U13 mark X -> U13 X 1 + 0X >= 1 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 1V1 + 1V2 >= 1 + 1V1 + 1V2 active isNatKind s V1 -> mark isNatKind V1 0 + 1V1 >= 0 + 1V1 active and(tt(), X) -> mark X 2 + 1X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 1M >= 1 + 1N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 1N >= 0 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 1N + 1M >= 1 + 1N + 1M active U31(tt(), N) -> mark N 0 + 1N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 1 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 1 + 1V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 1V1 + 1V2 >= 1 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 1V1 >= 0 + 1V1 active U12(tt(), V2) -> mark U13 isNat V2 2 + 0V2 >= 1 + 0V2 isNat active X -> isNat X 0 + 1X >= 0 + 1X isNat mark X -> isNat X 0 + 1X >= 0 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 1X >= 0 + 1X mark 0() -> active 0() 1 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark s X -> active s mark X 0 + 1X >= 0 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 mark U22 X -> active U22 mark X 1 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 1 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 1 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 1X2 + 0X3 mark isNat X -> active isNat X 0 + 1X >= 0 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 SCCS (0): SCC (2): Strict: { s# mark X -> s# X, s# active X -> s# X} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [s#](x0) = x0 Strict: s# active X -> s# X 1 + 1X >= 0 + 1X s# mark X -> s# X 0 + 1X >= 0 + 1X Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {s# mark X -> s# X} SCC (1): Strict: {s# mark X -> s# X} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [s#](x0) = x0 Strict: s# mark X -> s# X 1 + 1X >= 0 + 1X Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (2): Strict: { U22# mark X -> U22# X, U22# active X -> U22# X} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U22#](x0) = x0 Strict: U22# active X -> U22# X 1 + 1X >= 0 + 1X U22# mark X -> U22# X 0 + 1X >= 0 + 1X Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U22# mark X -> U22# X} SCC (1): Strict: {U22# mark X -> U22# X} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U22#](x0) = x0 Strict: U22# mark X -> U22# X 1 + 1X >= 0 + 1X Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (6): Strict: { U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(active X1, X2, X3) -> U11#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U11#](x0, x1, x2) = x0 Strict: U11#(active X1, X2, X3) -> U11#(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11#(mark X1, X2, X3) -> U11#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11#(X1, active X2, X3) -> U11#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11#(X1, mark X2, X3) -> U11#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11#(X1, X2, active X3) -> U11#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11#(X1, X2, mark X3) -> U11#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)} SCC (5): Strict: { U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(X1, active X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 1, [tt] = 1, [0] = 0, [U11#](x0, x1, x2) = x0 Strict: U11#(mark X1, X2, X3) -> U11#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U11#(X1, active X2, X3) -> U11#(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U11#(X1, mark X2, X3) -> U11#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U11#(X1, X2, active X3) -> U11#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U11#(X1, X2, mark X3) -> U11#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 Weak: isNatKind active X -> isNatKind X 1 + 0X >= 1 + 0X isNatKind mark X -> isNatKind X 1 + 0X >= 1 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 2 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 2 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 2 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)} SCC (4): Strict: { U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U11#](x0, x1, x2) = x0 Strict: U11#(mark X1, X2, X3) -> U11#(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11#(X1, mark X2, X3) -> U11#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11#(X1, X2, active X3) -> U11#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U11#(X1, X2, mark X3) -> U11#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 4 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 1 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3)} SCC (3): Strict: { U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3), U11#(X1, mark X2, X3) -> U11#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U11#](x0, x1, x2) = x0 Strict: U11#(X1, mark X2, X3) -> U11#(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U11#(X1, X2, active X3) -> U11#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U11#(X1, X2, mark X3) -> U11#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 4 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 1 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3)} SCC (2): Strict: { U11#(X1, X2, mark X3) -> U11#(X1, X2, X3), U11#(X1, X2, active X3) -> U11#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U11#](x0, x1, x2) = x0 Strict: U11#(X1, X2, active X3) -> U11#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U11#(X1, X2, mark X3) -> U11#(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U11#(X1, X2, mark X3) -> U11#(X1, X2, X3)} SCC (1): Strict: {U11#(X1, X2, mark X3) -> U11#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U11#](x0, x1, x2) = x0 Strict: U11#(X1, X2, mark X3) -> U11#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (2): Strict: { U13# mark X -> U13# X, U13# active X -> U13# X} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U13#](x0) = x0 Strict: U13# active X -> U13# X 1 + 1X >= 0 + 1X U13# mark X -> U13# X 0 + 1X >= 0 + 1X Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U13# mark X -> U13# X} SCC (1): Strict: {U13# mark X -> U13# X} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U13#](x0) = x0 Strict: U13# mark X -> U13# X 1 + 1X >= 0 + 1X Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (2): Strict: { isNatKind# mark X -> isNatKind# X, isNatKind# active X -> isNatKind# X} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [isNatKind#](x0) = x0 Strict: isNatKind# active X -> isNatKind# X 1 + 1X >= 0 + 1X isNatKind# mark X -> isNatKind# X 0 + 1X >= 0 + 1X Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {isNatKind# mark X -> isNatKind# X} SCC (1): Strict: {isNatKind# mark X -> isNatKind# X} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [isNatKind#](x0) = x0 Strict: isNatKind# mark X -> isNatKind# X 1 + 1X >= 0 + 1X Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (2): Strict: { isNat# mark X -> isNat# X, isNat# active X -> isNat# X} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [isNat#](x0) = x0 Strict: isNat# active X -> isNat# X 1 + 1X >= 0 + 1X isNat# mark X -> isNat# X 0 + 1X >= 0 + 1X Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {isNat# mark X -> isNat# X} SCC (1): Strict: {isNat# mark X -> isNat# X} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [isNat#](x0) = x0 Strict: isNat# mark X -> isNat# X 1 + 1X >= 0 + 1X Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (6): Strict: { U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3), U41#(active X1, X2, X3) -> U41#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U41#](x0, x1, x2) = x0 Strict: U41#(active X1, X2, X3) -> U41#(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U41#(mark X1, X2, X3) -> U41#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U41#(X1, active X2, X3) -> U41#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U41#(X1, mark X2, X3) -> U41#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U41#(X1, X2, active X3) -> U41#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U41#(X1, X2, mark X3) -> U41#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)} SCC (5): Strict: { U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(X1, active X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 1, [tt] = 1, [0] = 0, [U41#](x0, x1, x2) = x0 Strict: U41#(mark X1, X2, X3) -> U41#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U41#(X1, active X2, X3) -> U41#(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U41#(X1, mark X2, X3) -> U41#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U41#(X1, X2, active X3) -> U41#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U41#(X1, X2, mark X3) -> U41#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 Weak: isNatKind active X -> isNatKind X 1 + 0X >= 1 + 0X isNatKind mark X -> isNatKind X 1 + 0X >= 1 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 2 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 2 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 2 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)} SCC (4): Strict: { U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3), U41#(mark X1, X2, X3) -> U41#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U41#](x0, x1, x2) = x0 Strict: U41#(mark X1, X2, X3) -> U41#(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U41#(X1, mark X2, X3) -> U41#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U41#(X1, X2, active X3) -> U41#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U41#(X1, X2, mark X3) -> U41#(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 4 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 1 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3)} SCC (3): Strict: { U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3), U41#(X1, mark X2, X3) -> U41#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U41#](x0, x1, x2) = x0 Strict: U41#(X1, mark X2, X3) -> U41#(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U41#(X1, X2, active X3) -> U41#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 U41#(X1, X2, mark X3) -> U41#(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 4 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 1 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3)} SCC (2): Strict: { U41#(X1, X2, mark X3) -> U41#(X1, X2, X3), U41#(X1, X2, active X3) -> U41#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U41#](x0, x1, x2) = x0 Strict: U41#(X1, X2, active X3) -> U41#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U41#(X1, X2, mark X3) -> U41#(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U41#(X1, X2, mark X3) -> U41#(X1, X2, X3)} SCC (1): Strict: {U41#(X1, X2, mark X3) -> U41#(X1, X2, X3)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U41#](x0, x1, x2) = x0 Strict: U41#(X1, X2, mark X3) -> U41#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (4): Strict: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2), plus#(active X1, X2) -> plus#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [plus#](x0, x1) = x0 Strict: plus#(active X1, X2) -> plus#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 plus#(mark X1, X2) -> plus#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 plus#(X1, active X2) -> plus#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 plus#(X1, mark X2) -> plus#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)} SCC (3): Strict: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [plus#](x0, x1) = x0 Strict: plus#(mark X1, X2) -> plus#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 plus#(X1, active X2) -> plus#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 plus#(X1, mark X2) -> plus#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 4 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 1 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)} SCC (2): Strict: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, active X2) -> plus#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [plus#](x0, x1) = x0 Strict: plus#(X1, active X2) -> plus#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 plus#(X1, mark X2) -> plus#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {plus#(X1, mark X2) -> plus#(X1, X2)} SCC (1): Strict: {plus#(X1, mark X2) -> plus#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [plus#](x0, x1) = x0 Strict: plus#(X1, mark X2) -> plus#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (4): Strict: { and#(X1, mark X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2), and#(active X1, X2) -> and#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [and#](x0, x1) = x0 Strict: and#(active X1, X2) -> and#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 and#(mark X1, X2) -> and#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 and#(X1, active X2) -> and#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 and#(X1, mark X2) -> and#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { and#(X1, mark X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2)} SCC (3): Strict: { and#(X1, mark X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2), and#(mark X1, X2) -> and#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [and#](x0, x1) = x0 Strict: and#(mark X1, X2) -> and#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 and#(X1, active X2) -> and#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 and#(X1, mark X2) -> and#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 4 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 1 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { and#(X1, mark X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2)} SCC (2): Strict: { and#(X1, mark X2) -> and#(X1, X2), and#(X1, active X2) -> and#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [and#](x0, x1) = x0 Strict: and#(X1, active X2) -> and#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 and#(X1, mark X2) -> and#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {and#(X1, mark X2) -> and#(X1, X2)} SCC (1): Strict: {and#(X1, mark X2) -> and#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [and#](x0, x1) = x0 Strict: and#(X1, mark X2) -> and#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (4): Strict: { U31#(X1, mark X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2), U31#(active X1, X2) -> U31#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U31#](x0, x1) = x0 Strict: U31#(active X1, X2) -> U31#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U31#(mark X1, X2) -> U31#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U31#(X1, active X2) -> U31#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U31#(X1, mark X2) -> U31#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U31#(X1, mark X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)} SCC (3): Strict: { U31#(X1, mark X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U31#](x0, x1) = x0 Strict: U31#(mark X1, X2) -> U31#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U31#(X1, active X2) -> U31#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U31#(X1, mark X2) -> U31#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 4 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 1 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U31#(X1, mark X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2)} SCC (2): Strict: { U31#(X1, mark X2) -> U31#(X1, X2), U31#(X1, active X2) -> U31#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U31#](x0, x1) = x0 Strict: U31#(X1, active X2) -> U31#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31#(X1, mark X2) -> U31#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U31#(X1, mark X2) -> U31#(X1, X2)} SCC (1): Strict: {U31#(X1, mark X2) -> U31#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U31#](x0, x1) = x0 Strict: U31#(X1, mark X2) -> U31#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (4): Strict: { U21#(X1, mark X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2), U21#(active X1, X2) -> U21#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U21#](x0, x1) = x0 Strict: U21#(active X1, X2) -> U21#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21#(mark X1, X2) -> U21#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21#(X1, active X2) -> U21#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21#(X1, mark X2) -> U21#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U21#(X1, mark X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)} SCC (3): Strict: { U21#(X1, mark X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U21#](x0, x1) = x0 Strict: U21#(mark X1, X2) -> U21#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21#(X1, active X2) -> U21#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U21#(X1, mark X2) -> U21#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 4 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 1 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U21#(X1, mark X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2)} SCC (2): Strict: { U21#(X1, mark X2) -> U21#(X1, X2), U21#(X1, active X2) -> U21#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U21#](x0, x1) = x0 Strict: U21#(X1, active X2) -> U21#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21#(X1, mark X2) -> U21#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U21#(X1, mark X2) -> U21#(X1, X2)} SCC (1): Strict: {U21#(X1, mark X2) -> U21#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U21#](x0, x1) = x0 Strict: U21#(X1, mark X2) -> U21#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed SCC (4): Strict: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2), U12#(active X1, X2) -> U12#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U12#](x0, x1) = x0 Strict: U12#(active X1, X2) -> U12#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12#(mark X1, X2) -> U12#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12#(X1, active X2) -> U12#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12#(X1, mark X2) -> U12#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)} SCC (3): Strict: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2), U12#(mark X1, X2) -> U12#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U12#](x0, x1) = x0 Strict: U12#(mark X1, X2) -> U12#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12#(X1, active X2) -> U12#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 U12#(X1, mark X2) -> U12#(X1, X2) 0 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 4 + 1N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 1 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 SCCS (1): Scc: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)} SCC (2): Strict: { U12#(X1, mark X2) -> U12#(X1, X2), U12#(X1, active X2) -> U12#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = 0, [U41](x0, x1, x2) = 0, [U12](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [plus](x0, x1) = 0, [and](x0, x1) = 0, [mark](x0) = x0, [isNat](x0) = 0, [active](x0) = x0 + 1, [U13](x0) = 0, [U22](x0) = 0, [s](x0) = 0, [isNatKind](x0) = 0, [tt] = 1, [0] = 0, [U12#](x0, x1) = x0 Strict: U12#(X1, active X2) -> U12#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U12#(X1, mark X2) -> U12#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(mark X1, X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, active X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 and(X1, mark X2) -> and(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, active X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s active X -> s X 0 + 0X >= 0 + 0X s mark X -> s X 0 + 0X >= 0 + 0X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22 active X -> U22 X 0 + 0X >= 0 + 0X U22 mark X -> U22 X 0 + 0X >= 0 + 0X U13 active X -> U13 X 0 + 0X >= 0 + 0X U13 mark X -> U13 X 0 + 0X >= 0 + 0X U11(active X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 1 + 0V1 >= 0 + 0V1 active and(tt(), X) -> mark X 1 + 0X >= 0 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 0 + 0N + 0M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 1 + 0N >= 0 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 1 + 0N + 0M >= 0 + 0N + 0M active U31(tt(), N) -> mark N 1 + 0N >= 0 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 0 + 0V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat 0() -> mark tt() 1 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 1 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 1 + 0V1 >= 0 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 0V2 >= 0 + 0V2 isNat active X -> isNat X 0 + 0X >= 0 + 0X isNat mark X -> isNat X 0 + 0X >= 0 + 0X U12(active X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(mark X1, X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, active X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U12(X1, mark X2) -> U12(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark isNatKind X -> active isNatKind X 0 + 0X >= 1 + 0X mark 0() -> active 0() 0 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark s X -> active s mark X 0 + 0X >= 1 + 0X mark U31(X1, X2) -> active U31(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 mark U22 X -> active U22 mark X 0 + 0X >= 1 + 0X mark U13 X -> active U13 mark X 0 + 0X >= 1 + 0X mark tt() -> active tt() 1 >= 2 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 mark isNat X -> active isNat X 0 + 0X >= 1 + 0X mark U12(X1, X2) -> active U12(mark X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 SCCS (1): Scc: {U12#(X1, mark X2) -> U12#(X1, X2)} SCC (1): Strict: {U12#(X1, mark X2) -> U12#(X1, X2)} Weak: { mark U12(X1, X2) -> active U12(mark X1, X2), mark isNat X -> active isNat X, mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3), mark tt() -> active tt(), mark U13 X -> active U13 mark X, mark U22 X -> active U22 mark X, mark U21(X1, X2) -> active U21(mark X1, X2), mark U31(X1, X2) -> active U31(mark X1, X2), mark s X -> active s mark X, mark plus(X1, X2) -> active plus(mark X1, mark X2), mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3), mark and(X1, X2) -> active and(mark X1, X2), mark 0() -> active 0(), mark isNatKind X -> active isNatKind X, U12(X1, mark X2) -> U12(X1, X2), U12(X1, active X2) -> U12(X1, X2), U12(mark X1, X2) -> U12(X1, X2), U12(active X1, X2) -> U12(X1, X2), isNat mark X -> isNat X, isNat active X -> isNat X, active U12(tt(), V2) -> mark U13 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2), active isNat 0() -> mark tt(), active U11(tt(), V1, V2) -> mark U12(isNat V1, V2), active U13 tt() -> mark tt(), active U22 tt() -> mark tt(), active U21(tt(), V1) -> mark U22 isNat V1, active U31(tt(), N) -> mark N, active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N), active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N), active U41(tt(), M, N) -> mark s plus(N, M), active and(tt(), X) -> mark X, active isNatKind s V1 -> mark isNatKind V1, active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2), active isNatKind 0() -> mark tt(), U11(X1, X2, mark X3) -> U11(X1, X2, X3), U11(X1, X2, active X3) -> U11(X1, X2, X3), U11(X1, mark X2, X3) -> U11(X1, X2, X3), U11(X1, active X2, X3) -> U11(X1, X2, X3), U11(mark X1, X2, X3) -> U11(X1, X2, X3), U11(active X1, X2, X3) -> U11(X1, X2, X3), U13 mark X -> U13 X, U13 active X -> U13 X, U22 mark X -> U22 X, U22 active X -> U22 X, U21(X1, mark X2) -> U21(X1, X2), U21(X1, active X2) -> U21(X1, X2), U21(mark X1, X2) -> U21(X1, X2), U21(active X1, X2) -> U21(X1, X2), U31(X1, mark X2) -> U31(X1, X2), U31(X1, active X2) -> U31(X1, X2), U31(mark X1, X2) -> U31(X1, X2), U31(active X1, X2) -> U31(X1, X2), s mark X -> s X, s active X -> s X, plus(X1, mark X2) -> plus(X1, X2), plus(X1, active X2) -> plus(X1, X2), plus(mark X1, X2) -> plus(X1, X2), plus(active X1, X2) -> plus(X1, X2), U41(X1, X2, mark X3) -> U41(X1, X2, X3), U41(X1, X2, active X3) -> U41(X1, X2, X3), U41(X1, mark X2, X3) -> U41(X1, X2, X3), U41(X1, active X2, X3) -> U41(X1, X2, X3), U41(mark X1, X2, X3) -> U41(X1, X2, X3), U41(active X1, X2, X3) -> U41(X1, X2, X3), and(X1, mark X2) -> and(X1, X2), and(X1, active X2) -> and(X1, X2), and(mark X1, X2) -> and(X1, X2), and(active X1, X2) -> and(X1, X2), isNatKind mark X -> isNatKind X, isNatKind active X -> isNatKind X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U11](x0, x1, x2) = x0 + x1 + 1, [U41](x0, x1, x2) = x0 + 1, [U12](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [and](x0, x1) = x0 + x1 + 1, [mark](x0) = x0 + 1, [isNat](x0) = x0 + 1, [active](x0) = x0, [U13](x0) = x0 + 1, [U22](x0) = x0 + 1, [s](x0) = x0 + 1, [isNatKind](x0) = 0, [tt] = 0, [0] = 1, [U12#](x0, x1) = x0 Strict: U12#(X1, mark X2) -> U12#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: isNatKind active X -> isNatKind X 0 + 0X >= 0 + 0X isNatKind mark X -> isNatKind X 0 + 0X >= 0 + 0X and(active X1, X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(mark X1, X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, active X2) -> and(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 and(X1, mark X2) -> and(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41(active X1, X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(mark X1, X2, X3) -> U41(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, active X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, mark X2, X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, active X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U41(X1, X2, mark X3) -> U41(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 plus(active X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(mark X1, X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, active X2) -> plus(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 plus(X1, mark X2) -> plus(X1, X2) 2 + 0X1 + 1X2 >= 1 + 0X1 + 1X2 s active X -> s X 1 + 1X >= 1 + 1X s mark X -> s X 2 + 1X >= 1 + 1X U31(active X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, active X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(X1, mark X2) -> U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(active X1, X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> U21(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, active X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(X1, mark X2) -> U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22 active X -> U22 X 1 + 1X >= 1 + 1X U22 mark X -> U22 X 2 + 1X >= 1 + 1X U13 active X -> U13 X 1 + 1X >= 1 + 1X U13 mark X -> U13 X 2 + 1X >= 1 + 1X U11(active X1, X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, active X2, X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, mark X2, X3) -> U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, active X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(X1, X2, mark X3) -> U11(X1, X2, X3) 1 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark and(isNatKind V1, isNatKind V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNatKind s V1 -> mark isNatKind V1 0 + 0V1 >= 1 + 0V1 active and(tt(), X) -> mark X 1 + 1X >= 1 + 1X active U41(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 3 + 0N + 1M active plus(N, 0()) -> mark U31(and(isNat N, isNatKind N), N) 2 + 0N >= 1 + 0N active plus(N, s M) -> mark U41(and(and(isNat M, isNatKind M), and(isNat N, isNatKind N)), M, N) 2 + 0N + 1M >= 7 + 1N + 1M active U31(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U21(tt(), V1) -> mark U22 isNat V1 1 + 0V1 >= 3 + 1V1 active U22 tt() -> mark tt() 1 >= 1 active U13 tt() -> mark tt() 1 >= 1 active U11(tt(), V1, V2) -> mark U12(isNat V1, V2) 1 + 1V1 + 0V2 >= 3 + 1V1 + 1V2 active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(and(isNatKind V1, isNatKind V2), V1, V2) 2 + 0V1 + 1V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 1V1 >= 2 + 0V1 active U12(tt(), V2) -> mark U13 isNat V2 1 + 1V2 >= 3 + 1V2 isNat active X -> isNat X 1 + 1X >= 1 + 1X isNat mark X -> isNat X 2 + 1X >= 1 + 1X U12(active X1, X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(mark X1, X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, active X2) -> U12(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U12(X1, mark X2) -> U12(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 mark isNatKind X -> active isNatKind X 1 + 0X >= 0 + 0X mark 0() -> active 0() 2 >= 1 mark and(X1, X2) -> active and(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 mark U41(X1, X2, X3) -> active U41(mark X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 mark plus(X1, X2) -> active plus(mark X1, mark X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 mark s X -> active s mark X 2 + 1X >= 2 + 1X mark U31(X1, X2) -> active U31(mark X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 mark U21(X1, X2) -> active U21(mark X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 mark U22 X -> active U22 mark X 2 + 1X >= 2 + 1X mark U13 X -> active U13 mark X 2 + 1X >= 2 + 1X mark tt() -> active tt() 1 >= 0 mark U11(X1, X2, X3) -> active U11(mark X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 mark isNat X -> active isNat X 2 + 1X >= 1 + 1X mark U12(X1, X2) -> active U12(mark X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 Qed