MAYBE Time: 28.753847 TRS: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} DP: DP: { U12#(mark X1, X2, X3) -> U12#(X1, X2, X3), U12#(ok X1, ok X2, ok X3) -> U12#(X1, X2, X3), isNatKind# ok X -> isNatKind# X, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3), active# U12(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2), active# isNatKind s V1 -> isNatKind# V1, active# isNatKind s V1 -> U41# isNatKind V1, active# isNatKind plus(V1, V2) -> isNatKind# V1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2), active# U11(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3), active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2), active# U11(tt(), V1, V2) -> isNatKind# V1, active# U13(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3), active# U13(tt(), V1, V2) -> isNatKind# V2, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2), active# U14(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3), active# U14(tt(), V1, V2) -> U15#(isNat V1, V2), active# U14(tt(), V1, V2) -> isNat# V1, active# U15(X1, X2) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2), active# U15(tt(), V2) -> isNat# V2, active# U15(tt(), V2) -> U16# isNat V2, active# isNat s V1 -> isNatKind# V1, active# isNat s V1 -> U21#(isNatKind V1, V1), active# isNat plus(V1, V2) -> isNatKind# V1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2), active# U16 X -> active# X, active# U16 X -> U16# active X, active# U22(X1, X2) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2), active# U22(tt(), V1) -> isNat# V1, active# U22(tt(), V1) -> U23# isNat V1, active# U21(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2), active# U21(tt(), V1) -> isNatKind# V1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1), active# U23 X -> active# X, active# U23 X -> U23# active X, active# U32 X -> active# X, active# U32 X -> U32# active X, active# U31(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2), active# U31(tt(), V2) -> isNatKind# V2, active# U31(tt(), V2) -> U32# isNatKind V2, active# U41 X -> active# X, active# U41 X -> U41# active X, active# U52(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2), active# U51(X1, X2) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2), active# U51(tt(), N) -> isNatKind# N, active# U51(tt(), N) -> U52#(isNatKind N, N), active# U62(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3), active# U62(tt(), M, N) -> isNat# N, active# U62(tt(), M, N) -> U63#(isNat N, M, N), active# U61(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3), active# U61(tt(), M, N) -> isNatKind# M, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N), active# U63(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3), active# U63(tt(), M, N) -> isNatKind# N, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N), active# U64(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3), active# U64(tt(), M, N) -> s# plus(N, M), active# U64(tt(), M, N) -> plus#(N, M), active# s X -> active# X, active# s X -> s# active X, active# plus(N, s M) -> isNat# M, active# plus(N, s M) -> U61#(isNat M, M, N), active# plus(N, 0()) -> isNat# N, active# plus(N, 0()) -> U51#(isNat N, N), active# plus(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X2, active# plus(X1, X2) -> plus#(X1, active X2), active# plus(X1, X2) -> plus#(active X1, X2), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(ok X1, ok X2, ok X3) -> U11#(X1, X2, X3), U13#(mark X1, X2, X3) -> U13#(X1, X2, X3), U13#(ok X1, ok X2, ok X3) -> U13#(X1, X2, X3), U14#(mark X1, X2, X3) -> U14#(X1, X2, X3), U14#(ok X1, ok X2, ok X3) -> U14#(X1, X2, X3), U15#(mark X1, X2) -> U15#(X1, X2), U15#(ok X1, ok X2) -> U15#(X1, X2), isNat# ok X -> isNat# X, U16# mark X -> U16# X, U16# ok X -> U16# X, U22#(mark X1, X2) -> U22#(X1, X2), U22#(ok X1, ok X2) -> U22#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2), U23# mark X -> U23# X, U23# ok X -> U23# X, U32# mark X -> U32# X, U32# ok X -> U32# X, U31#(mark X1, X2) -> U31#(X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2), U41# mark X -> U41# X, U41# ok X -> U41# X, U52#(mark X1, X2) -> U52#(X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2), U51#(mark X1, X2) -> U51#(X1, X2), U51#(ok X1, ok X2) -> U51#(X1, X2), U62#(mark X1, X2, X3) -> U62#(X1, X2, X3), U62#(ok X1, ok X2, ok X3) -> U62#(X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3), U63#(mark X1, X2, X3) -> U63#(X1, X2, X3), U63#(ok X1, ok X2, ok X3) -> U63#(X1, X2, X3), U64#(mark X1, X2, X3) -> U64#(X1, X2, X3), U64#(ok X1, ok X2, ok X3) -> U64#(X1, X2, X3), s# mark X -> s# X, s# ok X -> s# X, plus#(X1, mark X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2), plus#(ok X1, ok X2) -> plus#(X1, X2), proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3), proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3), proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3), proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3), proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> U15#(proper X1, proper X2), proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X, proper# isNat X -> proper# X, proper# U16 X -> U16# proper X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> U22#(proper X1, proper X2), proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2), proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> U23# proper X, proper# U23 X -> proper# X, proper# U32 X -> U32# proper X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2), proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> U41# proper X, proper# U41 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2), proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2), proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3), proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3), proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3), proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3), proper# U64(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X, proper# s X -> proper# X, proper# plus(X1, X2) -> plus#(proper X1, proper X2), proper# plus(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X2, top# mark X -> proper# X, top# mark X -> top# proper X, top# ok X -> active# X, top# ok X -> top# active X} TRS: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} EDG: { (active# U61(tt(), M, N) -> U62#(isNatKind M, M, N), U62#(ok X1, ok X2, ok X3) -> U62#(X1, X2, X3)) (active# U61(tt(), M, N) -> U62#(isNatKind M, M, N), U62#(mark X1, X2, X3) -> U62#(X1, X2, X3)) (active# plus(N, s M) -> U61#(isNat M, M, N), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)) (active# U62(tt(), M, N) -> isNat# N, isNat# ok X -> isNat# X) (active# plus(N, 0()) -> isNat# N, isNat# ok X -> isNat# X) (active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2), U12#(ok X1, ok X2, ok X3) -> U12#(X1, X2, X3)) (active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2), U12#(mark X1, X2, X3) -> U12#(X1, X2, X3)) (active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (active# U13(tt(), V1, V2) -> isNatKind# V2, isNatKind# ok X -> isNatKind# X) (active# isNat s V1 -> U21#(isNatKind V1, V1), U21#(mark X1, X2) -> U21#(X1, X2)) (active# U31(tt(), V2) -> isNatKind# V2, isNatKind# ok X -> isNatKind# X) (active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2), U31#(ok X1, ok X2) -> U31#(X1, X2)) (active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2), U31#(mark X1, X2) -> U31#(X1, X2)) (active# U11(tt(), V1, V2) -> isNatKind# V1, isNatKind# ok X -> isNatKind# X) (active# U22(tt(), V1) -> isNat# V1, isNat# ok X -> isNat# X) (active# U51(tt(), N) -> U52#(isNatKind N, N), U52#(ok X1, ok X2) -> U52#(X1, X2)) (active# U51(tt(), N) -> U52#(isNatKind N, N), U52#(mark X1, X2) -> U52#(X1, X2)) (active# U64(tt(), M, N) -> plus#(N, M), plus#(ok X1, ok X2) -> plus#(X1, X2)) (active# U64(tt(), M, N) -> plus#(N, M), plus#(mark X1, X2) -> plus#(X1, X2)) (active# U64(tt(), M, N) -> plus#(N, M), plus#(X1, mark X2) -> plus#(X1, X2)) (active# U16 X -> active# X, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U16 X -> active# X, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U16 X -> active# X, active# plus(X1, X2) -> active# X2) (active# U16 X -> active# X, active# plus(X1, X2) -> active# X1) (active# U16 X -> active# X, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U16 X -> active# X, active# plus(N, 0()) -> isNat# N) (active# U16 X -> active# X, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U16 X -> active# X, active# plus(N, s M) -> isNat# M) (active# U16 X -> active# X, active# s X -> s# active X) (active# U16 X -> active# X, active# s X -> active# X) (active# U16 X -> active# X, active# U64(tt(), M, N) -> plus#(N, M)) (active# U16 X -> active# X, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U16 X -> active# X, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U16 X -> active# X, active# U64(X1, X2, X3) -> active# X1) (active# U16 X -> active# X, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U16 X -> active# X, active# U63(tt(), M, N) -> isNatKind# N) (active# U16 X -> active# X, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U16 X -> active# X, active# U63(X1, X2, X3) -> active# X1) (active# U16 X -> active# X, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U16 X -> active# X, active# U61(tt(), M, N) -> isNatKind# M) (active# U16 X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U16 X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# U16 X -> active# X, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U16 X -> active# X, active# U62(tt(), M, N) -> isNat# N) (active# U16 X -> active# X, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U16 X -> active# X, active# U62(X1, X2, X3) -> active# X1) (active# U16 X -> active# X, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U16 X -> active# X, active# U51(tt(), N) -> isNatKind# N) (active# U16 X -> active# X, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U16 X -> active# X, active# U51(X1, X2) -> active# X1) (active# U16 X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U16 X -> active# X, active# U52(X1, X2) -> active# X1) (active# U16 X -> active# X, active# U41 X -> U41# active X) (active# U16 X -> active# X, active# U41 X -> active# X) (active# U16 X -> active# X, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U16 X -> active# X, active# U31(tt(), V2) -> isNatKind# V2) (active# U16 X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U16 X -> active# X, active# U31(X1, X2) -> active# X1) (active# U16 X -> active# X, active# U32 X -> U32# active X) (active# U16 X -> active# X, active# U32 X -> active# X) (active# U16 X -> active# X, active# U23 X -> U23# active X) (active# U16 X -> active# X, active# U23 X -> active# X) (active# U16 X -> active# X, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U16 X -> active# X, active# U21(tt(), V1) -> isNatKind# V1) (active# U16 X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U16 X -> active# X, active# U21(X1, X2) -> active# X1) (active# U16 X -> active# X, active# U22(tt(), V1) -> U23# isNat V1) (active# U16 X -> active# X, active# U22(tt(), V1) -> isNat# V1) (active# U16 X -> active# X, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U16 X -> active# X, active# U22(X1, X2) -> active# X1) (active# U16 X -> active# X, active# U16 X -> U16# active X) (active# U16 X -> active# X, active# U16 X -> active# X) (active# U16 X -> active# X, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U16 X -> active# X, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U16 X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U16 X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# U16 X -> active# X, active# U15(tt(), V2) -> U16# isNat V2) (active# U16 X -> active# X, active# U15(tt(), V2) -> isNat# V2) (active# U16 X -> active# X, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U16 X -> active# X, active# U15(X1, X2) -> active# X1) (active# U16 X -> active# X, active# U14(tt(), V1, V2) -> isNat# V1) (active# U16 X -> active# X, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U16 X -> active# X, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U16 X -> active# X, active# U14(X1, X2, X3) -> active# X1) (active# U16 X -> active# X, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U16 X -> active# X, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U16 X -> active# X, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U16 X -> active# X, active# U13(X1, X2, X3) -> active# X1) (active# U16 X -> active# X, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U16 X -> active# X, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U16 X -> active# X, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U16 X -> active# X, active# U11(X1, X2, X3) -> active# X1) (active# U16 X -> active# X, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U16 X -> active# X, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U16 X -> active# X, active# isNatKind s V1 -> U41# isNatKind V1) (active# U16 X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# U16 X -> active# X, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U16 X -> active# X, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U16 X -> active# X, active# U12(X1, X2, X3) -> active# X1) (active# U16 X -> active# X, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U32 X -> active# X, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U32 X -> active# X, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U32 X -> active# X, active# plus(X1, X2) -> active# X2) (active# U32 X -> active# X, active# plus(X1, X2) -> active# X1) (active# U32 X -> active# X, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U32 X -> active# X, active# plus(N, 0()) -> isNat# N) (active# U32 X -> active# X, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U32 X -> active# X, active# plus(N, s M) -> isNat# M) (active# U32 X -> active# X, active# s X -> s# active X) (active# U32 X -> active# X, active# s X -> active# X) (active# U32 X -> active# X, active# U64(tt(), M, N) -> plus#(N, M)) (active# U32 X -> active# X, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U32 X -> active# X, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U32 X -> active# X, active# U64(X1, X2, X3) -> active# X1) (active# U32 X -> active# X, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U32 X -> active# X, active# U63(tt(), M, N) -> isNatKind# N) (active# U32 X -> active# X, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U32 X -> active# X, active# U63(X1, X2, X3) -> active# X1) (active# U32 X -> active# X, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U32 X -> active# X, active# U61(tt(), M, N) -> isNatKind# M) (active# U32 X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U32 X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# U32 X -> active# X, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U32 X -> active# X, active# U62(tt(), M, N) -> isNat# N) (active# U32 X -> active# X, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U32 X -> active# X, active# U62(X1, X2, X3) -> active# X1) (active# U32 X -> active# X, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U32 X -> active# X, active# U51(tt(), N) -> isNatKind# N) (active# U32 X -> active# X, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U32 X -> active# X, active# U51(X1, X2) -> active# X1) (active# U32 X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U32 X -> active# X, active# U52(X1, X2) -> active# X1) (active# U32 X -> active# X, active# U41 X -> U41# active X) (active# U32 X -> active# X, active# U41 X -> active# X) (active# U32 X -> active# X, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U32 X -> active# X, active# U31(tt(), V2) -> isNatKind# V2) (active# U32 X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U32 X -> active# X, active# U31(X1, X2) -> active# X1) (active# U32 X -> active# X, active# U32 X -> U32# active X) (active# U32 X -> active# X, active# U32 X -> active# X) (active# U32 X -> active# X, active# U23 X -> U23# active X) (active# U32 X -> active# X, active# U23 X -> active# X) (active# U32 X -> active# X, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U32 X -> active# X, active# U21(tt(), V1) -> isNatKind# V1) (active# U32 X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U32 X -> active# X, active# U21(X1, X2) -> active# X1) (active# U32 X -> active# X, active# U22(tt(), V1) -> U23# isNat V1) (active# U32 X -> active# X, active# U22(tt(), V1) -> isNat# V1) (active# U32 X -> active# X, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U32 X -> active# X, active# U22(X1, X2) -> active# X1) (active# U32 X -> active# X, active# U16 X -> U16# active X) (active# U32 X -> active# X, active# U16 X -> active# X) (active# U32 X -> active# X, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U32 X -> active# X, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U32 X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U32 X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# U32 X -> active# X, active# U15(tt(), V2) -> U16# isNat V2) (active# U32 X -> active# X, active# U15(tt(), V2) -> isNat# V2) (active# U32 X -> active# X, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U32 X -> active# X, active# U15(X1, X2) -> active# X1) (active# U32 X -> active# X, active# U14(tt(), V1, V2) -> isNat# V1) (active# U32 X -> active# X, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U32 X -> active# X, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U32 X -> active# X, active# U14(X1, X2, X3) -> active# X1) (active# U32 X -> active# X, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U32 X -> active# X, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U32 X -> active# X, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U32 X -> active# X, active# U13(X1, X2, X3) -> active# X1) (active# U32 X -> active# X, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U32 X -> active# X, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U32 X -> active# X, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U32 X -> active# X, active# U11(X1, X2, X3) -> active# X1) (active# U32 X -> active# X, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U32 X -> active# X, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U32 X -> active# X, active# isNatKind s V1 -> U41# isNatKind V1) (active# U32 X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# U32 X -> active# X, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U32 X -> active# X, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U32 X -> active# X, active# U12(X1, X2, X3) -> active# X1) (active# U32 X -> active# X, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# s X -> active# X, active# plus(X1, X2) -> plus#(active X1, X2)) (active# s X -> active# X, active# plus(X1, X2) -> plus#(X1, active X2)) (active# s X -> active# X, active# plus(X1, X2) -> active# X2) (active# s X -> active# X, active# plus(X1, X2) -> active# X1) (active# s X -> active# X, active# plus(N, 0()) -> U51#(isNat N, N)) (active# s X -> active# X, active# plus(N, 0()) -> isNat# N) (active# s X -> active# X, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# s X -> active# X, active# plus(N, s M) -> isNat# M) (active# s X -> active# X, active# s X -> s# active X) (active# s X -> active# X, active# s X -> active# X) (active# s X -> active# X, active# U64(tt(), M, N) -> plus#(N, M)) (active# s X -> active# X, active# U64(tt(), M, N) -> s# plus(N, M)) (active# s X -> active# X, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# s X -> active# X, active# U64(X1, X2, X3) -> active# X1) (active# s X -> active# X, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# s X -> active# X, active# U63(tt(), M, N) -> isNatKind# N) (active# s X -> active# X, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# s X -> active# X, active# U63(X1, X2, X3) -> active# X1) (active# s X -> active# X, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# s X -> active# X, active# U61(tt(), M, N) -> isNatKind# M) (active# s X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# s X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# s X -> active# X, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# s X -> active# X, active# U62(tt(), M, N) -> isNat# N) (active# s X -> active# X, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# s X -> active# X, active# U62(X1, X2, X3) -> active# X1) (active# s X -> active# X, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# s X -> active# X, active# U51(tt(), N) -> isNatKind# N) (active# s X -> active# X, active# U51(X1, X2) -> U51#(active X1, X2)) (active# s X -> active# X, active# U51(X1, X2) -> active# X1) (active# s X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# s X -> active# X, active# U52(X1, X2) -> active# X1) (active# s X -> active# X, active# U41 X -> U41# active X) (active# s X -> active# X, active# U41 X -> active# X) (active# s X -> active# X, active# U31(tt(), V2) -> U32# isNatKind V2) (active# s X -> active# X, active# U31(tt(), V2) -> isNatKind# V2) (active# s X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# s X -> active# X, active# U31(X1, X2) -> active# X1) (active# s X -> active# X, active# U32 X -> U32# active X) (active# s X -> active# X, active# U32 X -> active# X) (active# s X -> active# X, active# U23 X -> U23# active X) (active# s X -> active# X, active# U23 X -> active# X) (active# s X -> active# X, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# s X -> active# X, active# U21(tt(), V1) -> isNatKind# V1) (active# s X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# s X -> active# X, active# U21(X1, X2) -> active# X1) (active# s X -> active# X, active# U22(tt(), V1) -> U23# isNat V1) (active# s X -> active# X, active# U22(tt(), V1) -> isNat# V1) (active# s X -> active# X, active# U22(X1, X2) -> U22#(active X1, X2)) (active# s X -> active# X, active# U22(X1, X2) -> active# X1) (active# s X -> active# X, active# U16 X -> U16# active X) (active# s X -> active# X, active# U16 X -> active# X) (active# s X -> active# X, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# s X -> active# X, active# isNat plus(V1, V2) -> isNatKind# V1) (active# s X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# s X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# s X -> active# X, active# U15(tt(), V2) -> U16# isNat V2) (active# s X -> active# X, active# U15(tt(), V2) -> isNat# V2) (active# s X -> active# X, active# U15(X1, X2) -> U15#(active X1, X2)) (active# s X -> active# X, active# U15(X1, X2) -> active# X1) (active# s X -> active# X, active# U14(tt(), V1, V2) -> isNat# V1) (active# s X -> active# X, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# s X -> active# X, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# s X -> active# X, active# U14(X1, X2, X3) -> active# X1) (active# s X -> active# X, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# s X -> active# X, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# s X -> active# X, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# s X -> active# X, active# U13(X1, X2, X3) -> active# X1) (active# s X -> active# X, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# s X -> active# X, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# s X -> active# X, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# s X -> active# X, active# U11(X1, X2, X3) -> active# X1) (active# s X -> active# X, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# s X -> active# X, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# s X -> active# X, active# isNatKind s V1 -> U41# isNatKind V1) (active# s X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# s X -> active# X, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# s X -> active# X, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# s X -> active# X, active# U12(X1, X2, X3) -> active# X1) (active# s X -> active# X, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (U16# mark X -> U16# X, U16# ok X -> U16# X) (U16# mark X -> U16# X, U16# mark X -> U16# X) (U23# mark X -> U23# X, U23# ok X -> U23# X) (U23# mark X -> U23# X, U23# mark X -> U23# X) (U32# mark X -> U32# X, U32# ok X -> U32# X) (U32# mark X -> U32# X, U32# mark X -> U32# X) (U41# mark X -> U41# X, U41# ok X -> U41# X) (U41# mark X -> U41# X, U41# mark X -> U41# X) (s# mark X -> s# X, s# ok X -> s# X) (s# mark X -> s# X, s# mark X -> s# X) (proper# isNatKind X -> proper# X, proper# plus(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# plus(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# s X -> proper# X) (proper# isNatKind X -> proper# X, proper# s X -> s# proper X) (proper# isNatKind X -> proper# X, proper# U64(X1, X2, X3) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U64(X1, X2, X3) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U64(X1, X2, X3) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# isNatKind X -> proper# X, proper# U63(X1, X2, X3) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U63(X1, X2, X3) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U63(X1, X2, X3) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# isNatKind X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# isNatKind X -> proper# X, proper# U62(X1, X2, X3) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U62(X1, X2, X3) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U62(X1, X2, X3) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# isNatKind X -> proper# X, proper# U51(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U51(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# U41 X -> proper# X) (proper# isNatKind X -> proper# X, proper# U41 X -> U41# proper X) (proper# isNatKind X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# U32 X -> proper# X) (proper# isNatKind X -> proper# X, proper# U32 X -> U32# proper X) (proper# isNatKind X -> proper# X, proper# U23 X -> proper# X) (proper# isNatKind X -> proper# X, proper# U23 X -> U23# proper X) (proper# isNatKind X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# U22(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U22(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# U16 X -> proper# X) (proper# isNatKind X -> proper# X, proper# U16 X -> U16# proper X) (proper# isNatKind X -> proper# X, proper# isNat X -> proper# X) (proper# isNatKind X -> proper# X, proper# isNat X -> isNat# proper X) (proper# isNatKind X -> proper# X, proper# U15(X1, X2) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U15(X1, X2) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# isNatKind X -> proper# X, proper# U14(X1, X2, X3) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U14(X1, X2, X3) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U14(X1, X2, X3) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# isNatKind X -> proper# X, proper# U13(X1, X2, X3) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U13(X1, X2, X3) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U13(X1, X2, X3) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# isNatKind X -> proper# X, proper# isNatKind X -> proper# X) (proper# isNatKind X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# isNatKind X -> proper# X, proper# U12(X1, X2, X3) -> proper# X3) (proper# isNatKind X -> proper# X, proper# U12(X1, X2, X3) -> proper# X2) (proper# isNatKind X -> proper# X, proper# U12(X1, X2, X3) -> proper# X1) (proper# isNatKind X -> proper# X, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U16 X -> proper# X, proper# plus(X1, X2) -> proper# X2) (proper# U16 X -> proper# X, proper# plus(X1, X2) -> proper# X1) (proper# U16 X -> proper# X, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U16 X -> proper# X, proper# s X -> proper# X) (proper# U16 X -> proper# X, proper# s X -> s# proper X) (proper# U16 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X3) (proper# U16 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X2) (proper# U16 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X1) (proper# U16 X -> proper# X, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U16 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X3) (proper# U16 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X2) (proper# U16 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X1) (proper# U16 X -> proper# X, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U16 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# U16 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# U16 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# U16 X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U16 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X3) (proper# U16 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X2) (proper# U16 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X1) (proper# U16 X -> proper# X, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U16 X -> proper# X, proper# U51(X1, X2) -> proper# X2) (proper# U16 X -> proper# X, proper# U51(X1, X2) -> proper# X1) (proper# U16 X -> proper# X, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U16 X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# U16 X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# U16 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U16 X -> proper# X, proper# U41 X -> proper# X) (proper# U16 X -> proper# X, proper# U41 X -> U41# proper X) (proper# U16 X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# U16 X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# U16 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U16 X -> proper# X, proper# U32 X -> proper# X) (proper# U16 X -> proper# X, proper# U32 X -> U32# proper X) (proper# U16 X -> proper# X, proper# U23 X -> proper# X) (proper# U16 X -> proper# X, proper# U23 X -> U23# proper X) (proper# U16 X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# U16 X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# U16 X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X2) (proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1) (proper# U16 X -> proper# X, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U16 X -> proper# X, proper# U16 X -> proper# X) (proper# U16 X -> proper# X, proper# U16 X -> U16# proper X) (proper# U16 X -> proper# X, proper# isNat X -> proper# X) (proper# U16 X -> proper# X, proper# isNat X -> isNat# proper X) (proper# U16 X -> proper# X, proper# U15(X1, X2) -> proper# X2) (proper# U16 X -> proper# X, proper# U15(X1, X2) -> proper# X1) (proper# U16 X -> proper# X, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U16 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X3) (proper# U16 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X2) (proper# U16 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X1) (proper# U16 X -> proper# X, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U16 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X3) (proper# U16 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X2) (proper# U16 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X1) (proper# U16 X -> proper# X, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U16 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X3) (proper# U16 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X2) (proper# U16 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1) (proper# U16 X -> proper# X, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U16 X -> proper# X, proper# isNatKind X -> proper# X) (proper# U16 X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# U16 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X3) (proper# U16 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X2) (proper# U16 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X1) (proper# U16 X -> proper# X, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U32 X -> proper# X, proper# plus(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# plus(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# s X -> proper# X) (proper# U32 X -> proper# X, proper# s X -> s# proper X) (proper# U32 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X3) (proper# U32 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X2) (proper# U32 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X1) (proper# U32 X -> proper# X, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U32 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X3) (proper# U32 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X2) (proper# U32 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X1) (proper# U32 X -> proper# X, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U32 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# U32 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# U32 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# U32 X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U32 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X3) (proper# U32 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X2) (proper# U32 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X1) (proper# U32 X -> proper# X, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U32 X -> proper# X, proper# U51(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U51(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U41 X -> proper# X) (proper# U32 X -> proper# X, proper# U41 X -> U41# proper X) (proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U32 X -> proper# X) (proper# U32 X -> proper# X, proper# U32 X -> U32# proper X) (proper# U32 X -> proper# X, proper# U23 X -> proper# X) (proper# U32 X -> proper# X, proper# U23 X -> U23# proper X) (proper# U32 X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U22(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U22(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U16 X -> proper# X) (proper# U32 X -> proper# X, proper# U16 X -> U16# proper X) (proper# U32 X -> proper# X, proper# isNat X -> proper# X) (proper# U32 X -> proper# X, proper# isNat X -> isNat# proper X) (proper# U32 X -> proper# X, proper# U15(X1, X2) -> proper# X2) (proper# U32 X -> proper# X, proper# U15(X1, X2) -> proper# X1) (proper# U32 X -> proper# X, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U32 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X3) (proper# U32 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X2) (proper# U32 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X1) (proper# U32 X -> proper# X, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U32 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X3) (proper# U32 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X2) (proper# U32 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X1) (proper# U32 X -> proper# X, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U32 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X3) (proper# U32 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X2) (proper# U32 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1) (proper# U32 X -> proper# X, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U32 X -> proper# X, proper# isNatKind X -> proper# X) (proper# U32 X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# U32 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X3) (proper# U32 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X2) (proper# U32 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X1) (proper# U32 X -> proper# X, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# s X -> proper# X, proper# plus(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# plus(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# s X -> proper# X, proper# s X -> proper# X) (proper# s X -> proper# X, proper# s X -> s# proper X) (proper# s X -> proper# X, proper# U64(X1, X2, X3) -> proper# X3) (proper# s X -> proper# X, proper# U64(X1, X2, X3) -> proper# X2) (proper# s X -> proper# X, proper# U64(X1, X2, X3) -> proper# X1) (proper# s X -> proper# X, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# s X -> proper# X, proper# U63(X1, X2, X3) -> proper# X3) (proper# s X -> proper# X, proper# U63(X1, X2, X3) -> proper# X2) (proper# s X -> proper# X, proper# U63(X1, X2, X3) -> proper# X1) (proper# s X -> proper# X, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# s X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# s X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# s X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# s X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# s X -> proper# X, proper# U62(X1, X2, X3) -> proper# X3) (proper# s X -> proper# X, proper# U62(X1, X2, X3) -> proper# X2) (proper# s X -> proper# X, proper# U62(X1, X2, X3) -> proper# X1) (proper# s X -> proper# X, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# s X -> proper# X, proper# U51(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U51(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# s X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# s X -> proper# X, proper# U41 X -> proper# X) (proper# s X -> proper# X, proper# U41 X -> U41# proper X) (proper# s X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# s X -> proper# X, proper# U32 X -> proper# X) (proper# s X -> proper# X, proper# U32 X -> U32# proper X) (proper# s X -> proper# X, proper# U23 X -> proper# X) (proper# s X -> proper# X, proper# U23 X -> U23# proper X) (proper# s X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# s X -> proper# X, proper# U22(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U22(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# s X -> proper# X, proper# U16 X -> proper# X) (proper# s X -> proper# X, proper# U16 X -> U16# proper X) (proper# s X -> proper# X, proper# isNat X -> proper# X) (proper# s X -> proper# X, proper# isNat X -> isNat# proper X) (proper# s X -> proper# X, proper# U15(X1, X2) -> proper# X2) (proper# s X -> proper# X, proper# U15(X1, X2) -> proper# X1) (proper# s X -> proper# X, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# s X -> proper# X, proper# U14(X1, X2, X3) -> proper# X3) (proper# s X -> proper# X, proper# U14(X1, X2, X3) -> proper# X2) (proper# s X -> proper# X, proper# U14(X1, X2, X3) -> proper# X1) (proper# s X -> proper# X, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# s X -> proper# X, proper# U13(X1, X2, X3) -> proper# X3) (proper# s X -> proper# X, proper# U13(X1, X2, X3) -> proper# X2) (proper# s X -> proper# X, proper# U13(X1, X2, X3) -> proper# X1) (proper# s X -> proper# X, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# s X -> proper# X, proper# U11(X1, X2, X3) -> proper# X3) (proper# s X -> proper# X, proper# U11(X1, X2, X3) -> proper# X2) (proper# s X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1) (proper# s X -> proper# X, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# s X -> proper# X, proper# isNatKind X -> proper# X) (proper# s X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# s X -> proper# X, proper# U12(X1, X2, X3) -> proper# X3) (proper# s X -> proper# X, proper# U12(X1, X2, X3) -> proper# X2) (proper# s X -> proper# X, proper# U12(X1, X2, X3) -> proper# X1) (proper# s X -> proper# X, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (top# ok X -> active# X, active# plus(X1, X2) -> plus#(active X1, X2)) (top# ok X -> active# X, active# plus(X1, X2) -> plus#(X1, active X2)) (top# ok X -> active# X, active# plus(X1, X2) -> active# X2) (top# ok X -> active# X, active# plus(X1, X2) -> active# X1) (top# ok X -> active# X, active# plus(N, 0()) -> U51#(isNat N, N)) (top# ok X -> active# X, active# plus(N, 0()) -> isNat# N) (top# ok X -> active# X, active# plus(N, s M) -> U61#(isNat M, M, N)) (top# ok X -> active# X, active# plus(N, s M) -> isNat# M) (top# ok X -> active# X, active# s X -> s# active X) (top# ok X -> active# X, active# s X -> active# X) (top# ok X -> active# X, active# U64(tt(), M, N) -> plus#(N, M)) (top# ok X -> active# X, active# U64(tt(), M, N) -> s# plus(N, M)) (top# ok X -> active# X, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (top# ok X -> active# X, active# U64(X1, X2, X3) -> active# X1) (top# ok X -> active# X, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (top# ok X -> active# X, active# U63(tt(), M, N) -> isNatKind# N) (top# ok X -> active# X, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (top# ok X -> active# X, active# U63(X1, X2, X3) -> active# X1) (top# ok X -> active# X, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (top# ok X -> active# X, active# U61(tt(), M, N) -> isNatKind# M) (top# ok X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (top# ok X -> active# X, active# U61(X1, X2, X3) -> active# X1) (top# ok X -> active# X, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (top# ok X -> active# X, active# U62(tt(), M, N) -> isNat# N) (top# ok X -> active# X, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (top# ok X -> active# X, active# U62(X1, X2, X3) -> active# X1) (top# ok X -> active# X, active# U51(tt(), N) -> U52#(isNatKind N, N)) (top# ok X -> active# X, active# U51(tt(), N) -> isNatKind# N) (top# ok X -> active# X, active# U51(X1, X2) -> U51#(active X1, X2)) (top# ok X -> active# X, active# U51(X1, X2) -> active# X1) (top# ok X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (top# ok X -> active# X, active# U52(X1, X2) -> active# X1) (top# ok X -> active# X, active# U41 X -> U41# active X) (top# ok X -> active# X, active# U41 X -> active# X) (top# ok X -> active# X, active# U31(tt(), V2) -> U32# isNatKind V2) (top# ok X -> active# X, active# U31(tt(), V2) -> isNatKind# V2) (top# ok X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (top# ok X -> active# X, active# U31(X1, X2) -> active# X1) (top# ok X -> active# X, active# U32 X -> U32# active X) (top# ok X -> active# X, active# U32 X -> active# X) (top# ok X -> active# X, active# U23 X -> U23# active X) (top# ok X -> active# X, active# U23 X -> active# X) (top# ok X -> active# X, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (top# ok X -> active# X, active# U21(tt(), V1) -> isNatKind# V1) (top# ok X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (top# ok X -> active# X, active# U21(X1, X2) -> active# X1) (top# ok X -> active# X, active# U22(tt(), V1) -> U23# isNat V1) (top# ok X -> active# X, active# U22(tt(), V1) -> isNat# V1) (top# ok X -> active# X, active# U22(X1, X2) -> U22#(active X1, X2)) (top# ok X -> active# X, active# U22(X1, X2) -> active# X1) (top# ok X -> active# X, active# U16 X -> U16# active X) (top# ok X -> active# X, active# U16 X -> active# X) (top# ok X -> active# X, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (top# ok X -> active# X, active# isNat plus(V1, V2) -> isNatKind# V1) (top# ok X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (top# ok X -> active# X, active# isNat s V1 -> isNatKind# V1) (top# ok X -> active# X, active# U15(tt(), V2) -> U16# isNat V2) (top# ok X -> active# X, active# U15(tt(), V2) -> isNat# V2) (top# ok X -> active# X, active# U15(X1, X2) -> U15#(active X1, X2)) (top# ok X -> active# X, active# U15(X1, X2) -> active# X1) (top# ok X -> active# X, active# U14(tt(), V1, V2) -> isNat# V1) (top# ok X -> active# X, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (top# ok X -> active# X, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (top# ok X -> active# X, active# U14(X1, X2, X3) -> active# X1) (top# ok X -> active# X, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (top# ok X -> active# X, active# U13(tt(), V1, V2) -> isNatKind# V2) (top# ok X -> active# X, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (top# ok X -> active# X, active# U13(X1, X2, X3) -> active# X1) (top# ok X -> active# X, active# U11(tt(), V1, V2) -> isNatKind# V1) (top# ok X -> active# X, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (top# ok X -> active# X, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (top# ok X -> active# X, active# U11(X1, X2, X3) -> active# X1) (top# ok X -> active# X, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (top# ok X -> active# X, active# isNatKind plus(V1, V2) -> isNatKind# V1) (top# ok X -> active# X, active# isNatKind s V1 -> U41# isNatKind V1) (top# ok X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (top# ok X -> active# X, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (top# ok X -> active# X, active# U12(tt(), V1, V2) -> isNatKind# V2) (top# ok X -> active# X, active# U12(X1, X2, X3) -> active# X1) (top# ok X -> active# X, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U22(X1, X2) -> U22#(active X1, X2), U22#(ok X1, ok X2) -> U22#(X1, X2)) (active# U22(X1, X2) -> U22#(active X1, X2), U22#(mark X1, X2) -> U22#(X1, X2)) (active# U31(X1, X2) -> U31#(active X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2)) (active# U31(X1, X2) -> U31#(active X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)) (active# U51(X1, X2) -> U51#(active X1, X2), U51#(ok X1, ok X2) -> U51#(X1, X2)) (active# U51(X1, X2) -> U51#(active X1, X2), U51#(mark X1, X2) -> U51#(X1, X2)) (active# U16 X -> U16# active X, U16# ok X -> U16# X) (active# U16 X -> U16# active X, U16# mark X -> U16# X) (active# U32 X -> U32# active X, U32# ok X -> U32# X) (active# U32 X -> U32# active X, U32# mark X -> U32# X) (active# s X -> s# active X, s# ok X -> s# X) (active# s X -> s# active X, s# mark X -> s# X) (proper# isNat X -> isNat# proper X, isNat# ok X -> isNat# X) (proper# U23 X -> U23# proper X, U23# ok X -> U23# X) (proper# U23 X -> U23# proper X, U23# mark X -> U23# X) (proper# U41 X -> U41# proper X, U41# ok X -> U41# X) (proper# U41 X -> U41# proper X, U41# mark X -> U41# X) (top# mark X -> top# proper X, top# ok X -> top# active X) (top# mark X -> top# proper X, top# ok X -> active# X) (top# mark X -> top# proper X, top# mark X -> top# proper X) (top# mark X -> top# proper X, top# mark X -> proper# X) (active# U15(tt(), V2) -> U16# isNat V2, U16# ok X -> U16# X) (active# U15(tt(), V2) -> U16# isNat V2, U16# mark X -> U16# X) (active# isNatKind s V1 -> U41# isNatKind V1, U41# ok X -> U41# X) (active# isNatKind s V1 -> U41# isNatKind V1, U41# mark X -> U41# X) (proper# U12(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X3, proper# s X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X) (proper# U12(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U41 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X3, proper# U41 X -> U41# proper X) (proper# U12(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U32 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U12(X1, X2, X3) -> proper# X3, proper# U23 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X3, proper# U23 X -> U23# proper X) (proper# U12(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U16 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X3, proper# U16 X -> U16# proper X) (proper# U12(X1, X2, X3) -> proper# X3, proper# isNat X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U12(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U12(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X3, proper# s X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X) (proper# U13(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U41 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X3, proper# U41 X -> U41# proper X) (proper# U13(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U32 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U13(X1, X2, X3) -> proper# X3, proper# U23 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X3, proper# U23 X -> U23# proper X) (proper# U13(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U16 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X3, proper# U16 X -> U16# proper X) (proper# U13(X1, X2, X3) -> proper# X3, proper# isNat X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U13(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U13(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X3, proper# s X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X) (proper# U62(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U41 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X3, proper# U41 X -> U41# proper X) (proper# U62(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U32 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U62(X1, X2, X3) -> proper# X3, proper# U23 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X3, proper# U23 X -> U23# proper X) (proper# U62(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U16 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X3, proper# U16 X -> U16# proper X) (proper# U62(X1, X2, X3) -> proper# X3, proper# isNat X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U62(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U62(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X3, proper# s X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X) (proper# U63(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U41 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X3, proper# U41 X -> U41# proper X) (proper# U63(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U32 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U63(X1, X2, X3) -> proper# X3, proper# U23 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X3, proper# U23 X -> U23# proper X) (proper# U63(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U16 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X3, proper# U16 X -> U16# proper X) (proper# U63(X1, X2, X3) -> proper# X3, proper# isNat X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U63(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U63(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (U15#(mark X1, X2) -> U15#(X1, X2), U15#(ok X1, ok X2) -> U15#(X1, X2)) (U15#(mark X1, X2) -> U15#(X1, X2), U15#(mark X1, X2) -> U15#(X1, X2)) (U22#(mark X1, X2) -> U22#(X1, X2), U22#(ok X1, ok X2) -> U22#(X1, X2)) (U22#(mark X1, X2) -> U22#(X1, X2), U22#(mark X1, X2) -> U22#(X1, X2)) (U21#(mark X1, X2) -> U21#(X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2)) (U21#(mark X1, X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)) (U31#(mark X1, X2) -> U31#(X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2)) (U31#(mark X1, X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)) (U52#(mark X1, X2) -> U52#(X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2)) (U52#(mark X1, X2) -> U52#(X1, X2), U52#(mark X1, X2) -> U52#(X1, X2)) (U51#(mark X1, X2) -> U51#(X1, X2), U51#(ok X1, ok X2) -> U51#(X1, X2)) (U51#(mark X1, X2) -> U51#(X1, X2), U51#(mark X1, X2) -> U51#(X1, X2)) (plus#(X1, mark X2) -> plus#(X1, X2), plus#(ok X1, ok X2) -> plus#(X1, X2)) (plus#(X1, mark X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (plus#(X1, mark X2) -> plus#(X1, X2), plus#(X1, mark X2) -> plus#(X1, X2)) (plus#(ok X1, ok X2) -> plus#(X1, X2), plus#(ok X1, ok X2) -> plus#(X1, X2)) (plus#(ok X1, ok X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (plus#(ok X1, ok X2) -> plus#(X1, X2), plus#(X1, mark X2) -> plus#(X1, X2)) (proper# U12(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X2, proper# s X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X2, proper# s X -> s# proper X) (proper# U12(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U41 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U12(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U32 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U12(X1, X2, X3) -> proper# X2, proper# U23 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U12(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U16 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U12(X1, X2, X3) -> proper# X2, proper# isNat X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U12(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X2, proper# s X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X2, proper# s X -> s# proper X) (proper# U13(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U41 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U13(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U32 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U13(X1, X2, X3) -> proper# X2, proper# U23 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U13(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U16 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U13(X1, X2, X3) -> proper# X2, proper# isNat X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U13(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U13(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U15(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U15(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X2, proper# U41 X -> proper# X) (proper# U15(X1, X2) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U15(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U15(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U15(X1, X2) -> proper# X2, proper# U23 X -> proper# X) (proper# U15(X1, X2) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U15(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X2, proper# U16 X -> proper# X) (proper# U15(X1, X2) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U15(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U15(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U15(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U15(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U41 X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U16 X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U21(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U21(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U21(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U41 X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U23 X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U16 X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U52(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U52(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U52(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X2, proper# s X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X2, proper# s X -> s# proper X) (proper# U62(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U41 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U62(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U32 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U62(X1, X2, X3) -> proper# X2, proper# U23 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U62(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U16 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U62(X1, X2, X3) -> proper# X2, proper# isNat X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U62(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U62(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X2, proper# s X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X2, proper# s X -> s# proper X) (proper# U63(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U41 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U63(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U32 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U63(X1, X2, X3) -> proper# X2, proper# U23 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U63(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U16 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U63(X1, X2, X3) -> proper# X2, proper# isNat X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U63(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U63(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# plus(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# plus(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X2, proper# U41 X -> proper# X) (proper# plus(X1, X2) -> proper# X2, proper# U41 X -> U41# proper X) (proper# plus(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# plus(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# plus(X1, X2) -> proper# X2, proper# U23 X -> proper# X) (proper# plus(X1, X2) -> proper# X2, proper# U23 X -> U23# proper X) (proper# plus(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X2, proper# U16 X -> proper# X) (proper# plus(X1, X2) -> proper# X2, proper# U16 X -> U16# proper X) (proper# plus(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# plus(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# plus(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# plus(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# plus(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (U12#(ok X1, ok X2, ok X3) -> U12#(X1, X2, X3), U12#(ok X1, ok X2, ok X3) -> U12#(X1, X2, X3)) (U12#(ok X1, ok X2, ok X3) -> U12#(X1, X2, X3), U12#(mark X1, X2, X3) -> U12#(X1, X2, X3)) (active# U12(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U12(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U12(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U12(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U12(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U12(X1, X2, X3) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U12(X1, X2, X3) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U12(X1, X2, X3) -> active# X1, active# s X -> s# active X) (active# U12(X1, X2, X3) -> active# X1, active# s X -> active# X) (active# U12(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U12(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U12(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U12(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U12(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U12(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U12(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U12(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U12(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U12(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U12(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U12(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U12(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U12(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U12(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U12(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U12(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U41 X -> U41# active X) (active# U12(X1, X2, X3) -> active# X1, active# U41 X -> active# X) (active# U12(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U12(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U12(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U12(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U32 X -> U32# active X) (active# U12(X1, X2, X3) -> active# X1, active# U32 X -> active# X) (active# U12(X1, X2, X3) -> active# X1, active# U23 X -> U23# active X) (active# U12(X1, X2, X3) -> active# X1, active# U23 X -> active# X) (active# U12(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U12(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U12(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U12(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U12(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U12(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U12(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U16 X -> U16# active X) (active# U12(X1, X2, X3) -> active# X1, active# U16 X -> active# X) (active# U12(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U12(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U12(X1, X2, X3) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U12(X1, X2, X3) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U12(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U12(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U12(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U12(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U12(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U12(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U12(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U12(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U12(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U12(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U12(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U12(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U12(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U12(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U12(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U12(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U12(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U12(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U11(X1, X2, X3) -> U11#(active X1, X2, X3), U11#(ok X1, ok X2, ok X3) -> U11#(X1, X2, X3)) (active# U11(X1, X2, X3) -> U11#(active X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (active# U13(X1, X2, X3) -> U13#(active X1, X2, X3), U13#(ok X1, ok X2, ok X3) -> U13#(X1, X2, X3)) (active# U13(X1, X2, X3) -> U13#(active X1, X2, X3), U13#(mark X1, X2, X3) -> U13#(X1, X2, X3)) (active# U14(X1, X2, X3) -> U14#(active X1, X2, X3), U14#(ok X1, ok X2, ok X3) -> U14#(X1, X2, X3)) (active# U14(X1, X2, X3) -> U14#(active X1, X2, X3), U14#(mark X1, X2, X3) -> U14#(X1, X2, X3)) (active# U22(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U22(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U22(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U22(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U22(X1, X2) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U22(X1, X2) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U22(X1, X2) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U22(X1, X2) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U22(X1, X2) -> active# X1, active# s X -> s# active X) (active# U22(X1, X2) -> active# X1, active# s X -> active# X) (active# U22(X1, X2) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U22(X1, X2) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U22(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U22(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U22(X1, X2) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U22(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U22(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U22(X1, X2) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U22(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U22(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U22(X1, X2) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U22(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U22(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U22(X1, X2) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U22(X1, X2) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U22(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U22(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U41 X -> U41# active X) (active# U22(X1, X2) -> active# X1, active# U41 X -> active# X) (active# U22(X1, X2) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U22(X1, X2) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U22(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U22(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U22(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U22(X1, X2) -> active# X1, active# U23 X -> U23# active X) (active# U22(X1, X2) -> active# X1, active# U23 X -> active# X) (active# U22(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U22(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U22(X1, X2) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U22(X1, X2) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U22(X1, X2) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U16 X -> U16# active X) (active# U22(X1, X2) -> active# X1, active# U16 X -> active# X) (active# U22(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U22(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U22(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U22(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U22(X1, X2) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U22(X1, X2) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U22(X1, X2) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U22(X1, X2) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U22(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U22(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U22(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U22(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U22(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U22(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U22(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U22(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U22(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U22(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U22(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U22(X1, X2) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U22(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U22(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U22(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U22(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U22(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U31(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U31(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U31(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U31(X1, X2) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U31(X1, X2) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U31(X1, X2) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U31(X1, X2) -> active# X1, active# s X -> s# active X) (active# U31(X1, X2) -> active# X1, active# s X -> active# X) (active# U31(X1, X2) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U31(X1, X2) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U31(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U31(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U31(X1, X2) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U31(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U31(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U31(X1, X2) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U31(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U31(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U31(X1, X2) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U31(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U31(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U31(X1, X2) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U31(X1, X2) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U41 X -> U41# active X) (active# U31(X1, X2) -> active# X1, active# U41 X -> active# X) (active# U31(X1, X2) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U31(X1, X2) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U31(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U31(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U31(X1, X2) -> active# X1, active# U23 X -> U23# active X) (active# U31(X1, X2) -> active# X1, active# U23 X -> active# X) (active# U31(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U31(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U31(X1, X2) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U31(X1, X2) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U16 X -> U16# active X) (active# U31(X1, X2) -> active# X1, active# U16 X -> active# X) (active# U31(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U31(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U31(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U31(X1, X2) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U31(X1, X2) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U31(X1, X2) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U31(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U31(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U31(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U31(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U31(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U31(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U31(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U31(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U31(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U31(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U31(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U31(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U31(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U31(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U31(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U51(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U51(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U51(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U51(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U51(X1, X2) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U51(X1, X2) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U51(X1, X2) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U51(X1, X2) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U51(X1, X2) -> active# X1, active# s X -> s# active X) (active# U51(X1, X2) -> active# X1, active# s X -> active# X) (active# U51(X1, X2) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U51(X1, X2) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U51(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U51(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U51(X1, X2) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U51(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U51(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U51(X1, X2) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U51(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U51(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U51(X1, X2) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U51(X1, X2) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U51(X1, X2) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U51(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U51(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U41 X -> U41# active X) (active# U51(X1, X2) -> active# X1, active# U41 X -> active# X) (active# U51(X1, X2) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U51(X1, X2) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U51(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U51(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U51(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U51(X1, X2) -> active# X1, active# U23 X -> U23# active X) (active# U51(X1, X2) -> active# X1, active# U23 X -> active# X) (active# U51(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U51(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U51(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U51(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U51(X1, X2) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U51(X1, X2) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U51(X1, X2) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U16 X -> U16# active X) (active# U51(X1, X2) -> active# X1, active# U16 X -> active# X) (active# U51(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U51(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U51(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U51(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U51(X1, X2) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U51(X1, X2) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U51(X1, X2) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U51(X1, X2) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U51(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U51(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U51(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U51(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U51(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U51(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U51(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U51(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U51(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U51(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U51(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U51(X1, X2) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U51(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U51(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U51(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U51(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U51(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U62(X1, X2, X3) -> U62#(active X1, X2, X3), U62#(ok X1, ok X2, ok X3) -> U62#(X1, X2, X3)) (active# U62(X1, X2, X3) -> U62#(active X1, X2, X3), U62#(mark X1, X2, X3) -> U62#(X1, X2, X3)) (active# U61(X1, X2, X3) -> U61#(active X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)) (active# U61(X1, X2, X3) -> U61#(active X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)) (active# U63(X1, X2, X3) -> U63#(active X1, X2, X3), U63#(ok X1, ok X2, ok X3) -> U63#(X1, X2, X3)) (active# U63(X1, X2, X3) -> U63#(active X1, X2, X3), U63#(mark X1, X2, X3) -> U63#(X1, X2, X3)) (active# U64(X1, X2, X3) -> U64#(active X1, X2, X3), U64#(ok X1, ok X2, ok X3) -> U64#(X1, X2, X3)) (active# U64(X1, X2, X3) -> U64#(active X1, X2, X3), U64#(mark X1, X2, X3) -> U64#(X1, X2, X3)) (U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(ok X1, ok X2, ok X3) -> U11#(X1, X2, X3)) (U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (U13#(mark X1, X2, X3) -> U13#(X1, X2, X3), U13#(ok X1, ok X2, ok X3) -> U13#(X1, X2, X3)) (U13#(mark X1, X2, X3) -> U13#(X1, X2, X3), U13#(mark X1, X2, X3) -> U13#(X1, X2, X3)) (U14#(mark X1, X2, X3) -> U14#(X1, X2, X3), U14#(ok X1, ok X2, ok X3) -> U14#(X1, X2, X3)) (U14#(mark X1, X2, X3) -> U14#(X1, X2, X3), U14#(mark X1, X2, X3) -> U14#(X1, X2, X3)) (U62#(mark X1, X2, X3) -> U62#(X1, X2, X3), U62#(ok X1, ok X2, ok X3) -> U62#(X1, X2, X3)) (U62#(mark X1, X2, X3) -> U62#(X1, X2, X3), U62#(mark X1, X2, X3) -> U62#(X1, X2, X3)) (U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)) (U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)) (U63#(mark X1, X2, X3) -> U63#(X1, X2, X3), U63#(ok X1, ok X2, ok X3) -> U63#(X1, X2, X3)) (U63#(mark X1, X2, X3) -> U63#(X1, X2, X3), U63#(mark X1, X2, X3) -> U63#(X1, X2, X3)) (U64#(mark X1, X2, X3) -> U64#(X1, X2, X3), U64#(ok X1, ok X2, ok X3) -> U64#(X1, X2, X3)) (U64#(mark X1, X2, X3) -> U64#(X1, X2, X3), U64#(mark X1, X2, X3) -> U64#(X1, X2, X3)) (proper# U12(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X1, proper# s X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X1, proper# s X -> s# proper X) (proper# U12(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U41 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U12(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U32 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U12(X1, X2, X3) -> proper# X1, proper# U23 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U12(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U16 X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U12(X1, X2, X3) -> proper# X1, proper# isNat X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U12(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U12(X1, X2, X3) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U12(X1, X2, X3) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X1, proper# s X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X1, proper# s X -> s# proper X) (proper# U13(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U41 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U13(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U32 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U13(X1, X2, X3) -> proper# X1, proper# U23 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U13(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U16 X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U13(X1, X2, X3) -> proper# X1, proper# isNat X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U13(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U13(X1, X2, X3) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U13(X1, X2, X3) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U13(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U13(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U13(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U13(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U15(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U15(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X1, proper# U41 X -> proper# X) (proper# U15(X1, X2) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U15(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U15(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U15(X1, X2) -> proper# X1, proper# U23 X -> proper# X) (proper# U15(X1, X2) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U15(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X1, proper# U16 X -> proper# X) (proper# U15(X1, X2) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U15(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U15(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U15(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U15(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U15(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U15(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U15(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U15(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U15(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# U41 X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U23 X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# U16 X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U21(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U21(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U21(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U21(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U21(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U21(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U21(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U21(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# U41 X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U23 X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# U16 X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U52(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U52(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U52(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U52(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U52(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U52(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U52(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U52(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X1, proper# s X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X1, proper# s X -> s# proper X) (proper# U62(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U41 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U62(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U32 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U62(X1, X2, X3) -> proper# X1, proper# U23 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U62(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U16 X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U62(X1, X2, X3) -> proper# X1, proper# isNat X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U62(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U62(X1, X2, X3) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U62(X1, X2, X3) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U62(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U62(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U62(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U62(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X1, proper# s X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X1, proper# s X -> s# proper X) (proper# U63(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U41 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U63(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U32 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U63(X1, X2, X3) -> proper# X1, proper# U23 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U63(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U16 X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U63(X1, X2, X3) -> proper# X1, proper# isNat X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U63(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U63(X1, X2, X3) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U63(X1, X2, X3) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U63(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U63(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U63(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U63(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# plus(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# plus(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X1, proper# U41 X -> proper# X) (proper# plus(X1, X2) -> proper# X1, proper# U41 X -> U41# proper X) (proper# plus(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# plus(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# plus(X1, X2) -> proper# X1, proper# U23 X -> proper# X) (proper# plus(X1, X2) -> proper# X1, proper# U23 X -> U23# proper X) (proper# plus(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X1, proper# U16 X -> proper# X) (proper# plus(X1, X2) -> proper# X1, proper# U16 X -> U16# proper X) (proper# plus(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# plus(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# plus(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# plus(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# plus(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# plus(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# plus(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# plus(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# plus(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# plus(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3), U11#(ok X1, ok X2, ok X3) -> U11#(X1, X2, X3)) (proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3), U14#(ok X1, ok X2, ok X3) -> U14#(X1, X2, X3)) (proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3), U14#(mark X1, X2, X3) -> U14#(X1, X2, X3)) (proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)) (proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)) (proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3), U64#(ok X1, ok X2, ok X3) -> U64#(X1, X2, X3)) (proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3), U64#(mark X1, X2, X3) -> U64#(X1, X2, X3)) (proper# U15(X1, X2) -> U15#(proper X1, proper X2), U15#(ok X1, ok X2) -> U15#(X1, X2)) (proper# U15(X1, X2) -> U15#(proper X1, proper X2), U15#(mark X1, X2) -> U15#(X1, X2)) (proper# U21(X1, X2) -> U21#(proper X1, proper X2), U21#(ok X1, ok X2) -> U21#(X1, X2)) (proper# U21(X1, X2) -> U21#(proper X1, proper X2), U21#(mark X1, X2) -> U21#(X1, X2)) (proper# U52(X1, X2) -> U52#(proper X1, proper X2), U52#(ok X1, ok X2) -> U52#(X1, X2)) (proper# U52(X1, X2) -> U52#(proper X1, proper X2), U52#(mark X1, X2) -> U52#(X1, X2)) (proper# plus(X1, X2) -> plus#(proper X1, proper X2), plus#(ok X1, ok X2) -> plus#(X1, X2)) (proper# plus(X1, X2) -> plus#(proper X1, proper X2), plus#(mark X1, X2) -> plus#(X1, X2)) (proper# plus(X1, X2) -> plus#(proper X1, proper X2), plus#(X1, mark X2) -> plus#(X1, X2)) (active# U61(tt(), M, N) -> isNatKind# M, isNatKind# ok X -> isNatKind# X) (proper# U51(X1, X2) -> U51#(proper X1, proper X2), U51#(mark X1, X2) -> U51#(X1, X2)) (proper# U51(X1, X2) -> U51#(proper X1, proper X2), U51#(ok X1, ok X2) -> U51#(X1, X2)) (proper# U31(X1, X2) -> U31#(proper X1, proper X2), U31#(mark X1, X2) -> U31#(X1, X2)) (proper# U31(X1, X2) -> U31#(proper X1, proper X2), U31#(ok X1, ok X2) -> U31#(X1, X2)) (proper# U22(X1, X2) -> U22#(proper X1, proper X2), U22#(mark X1, X2) -> U22#(X1, X2)) (proper# U22(X1, X2) -> U22#(proper X1, proper X2), U22#(ok X1, ok X2) -> U22#(X1, X2)) (active# plus(X1, X2) -> plus#(X1, active X2), plus#(X1, mark X2) -> plus#(X1, X2)) (active# plus(X1, X2) -> plus#(X1, active X2), plus#(ok X1, ok X2) -> plus#(X1, X2)) (proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3), U63#(mark X1, X2, X3) -> U63#(X1, X2, X3)) (proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3), U63#(ok X1, ok X2, ok X3) -> U63#(X1, X2, X3)) (proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3), U62#(mark X1, X2, X3) -> U62#(X1, X2, X3)) (proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3), U62#(ok X1, ok X2, ok X3) -> U62#(X1, X2, X3)) (proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3), U13#(mark X1, X2, X3) -> U13#(X1, X2, X3)) (proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3), U13#(ok X1, ok X2, ok X3) -> U13#(X1, X2, X3)) (proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3), U12#(mark X1, X2, X3) -> U12#(X1, X2, X3)) (proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3), U12#(ok X1, ok X2, ok X3) -> U12#(X1, X2, X3)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U64(X1, X2, X3) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U64(X1, X2, X3) -> proper# X1, proper# isNat X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U64(X1, X2, X3) -> proper# X1, proper# U16 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U64(X1, X2, X3) -> proper# X1, proper# U23 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U64(X1, X2, X3) -> proper# X1, proper# U32 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U64(X1, X2, X3) -> proper# X1, proper# U41 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X1, proper# s X -> s# proper X) (proper# U64(X1, X2, X3) -> proper# X1, proper# s X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# isNat X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U16 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U23 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U32 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U41 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X1, proper# s X -> s# proper X) (proper# U61(X1, X2, X3) -> proper# X1, proper# s X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U51(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U51(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U51(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U51(X1, X2) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U51(X1, X2) -> proper# X1, proper# U16 X -> proper# X) (proper# U51(X1, X2) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U51(X1, X2) -> proper# X1, proper# U23 X -> proper# X) (proper# U51(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U51(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U51(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U51(X1, X2) -> proper# X1, proper# U41 X -> proper# X) (proper# U51(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U51(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U51(X1, X2) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U31(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U31(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U31(X1, X2) -> proper# X1, proper# U16 X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U31(X1, X2) -> proper# X1, proper# U23 X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U31(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U31(X1, X2) -> proper# X1, proper# U41 X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U31(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U31(X1, X2) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U22(X1, X2) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U22(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U22(X1, X2) -> proper# X1, proper# isNat X -> proper# X) (proper# U22(X1, X2) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U22(X1, X2) -> proper# X1, proper# U16 X -> proper# X) (proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U22(X1, X2) -> proper# X1, proper# U23 X -> proper# X) (proper# U22(X1, X2) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U22(X1, X2) -> proper# X1, proper# U32 X -> proper# X) (proper# U22(X1, X2) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U22(X1, X2) -> proper# X1, proper# U41 X -> proper# X) (proper# U22(X1, X2) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X1, proper# s X -> s# proper X) (proper# U22(X1, X2) -> proper# X1, proper# s X -> proper# X) (proper# U22(X1, X2) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U14(X1, X2, X3) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U14(X1, X2, X3) -> proper# X1, proper# isNat X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U14(X1, X2, X3) -> proper# X1, proper# U16 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U14(X1, X2, X3) -> proper# X1, proper# U23 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U14(X1, X2, X3) -> proper# X1, proper# U32 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U14(X1, X2, X3) -> proper# X1, proper# U41 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X1, proper# s X -> s# proper X) (proper# U14(X1, X2, X3) -> proper# X1, proper# s X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X1, proper# isNatKind X -> isNatKind# proper X) (proper# U11(X1, X2, X3) -> proper# X1, proper# isNatKind X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U15(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# isNat X -> isNat# proper X) (proper# U11(X1, X2, X3) -> proper# X1, proper# isNat X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X1, proper# U16 X -> U16# proper X) (proper# U11(X1, X2, X3) -> proper# X1, proper# U16 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U22(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U21(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U23 X -> U23# proper X) (proper# U11(X1, X2, X3) -> proper# X1, proper# U23 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X1, proper# U32 X -> U32# proper X) (proper# U11(X1, X2, X3) -> proper# X1, proper# U32 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U31(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U41 X -> U41# proper X) (proper# U11(X1, X2, X3) -> proper# X1, proper# U41 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U52(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U51(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X1, proper# s X -> s# proper X) (proper# U11(X1, X2, X3) -> proper# X1, proper# s X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X1, proper# plus(X1, X2) -> proper# X2) (U64#(ok X1, ok X2, ok X3) -> U64#(X1, X2, X3), U64#(mark X1, X2, X3) -> U64#(X1, X2, X3)) (U64#(ok X1, ok X2, ok X3) -> U64#(X1, X2, X3), U64#(ok X1, ok X2, ok X3) -> U64#(X1, X2, X3)) (U63#(ok X1, ok X2, ok X3) -> U63#(X1, X2, X3), U63#(mark X1, X2, X3) -> U63#(X1, X2, X3)) (U63#(ok X1, ok X2, ok X3) -> U63#(X1, X2, X3), U63#(ok X1, ok X2, ok X3) -> U63#(X1, X2, X3)) (U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3), U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)) (U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)) (U62#(ok X1, ok X2, ok X3) -> U62#(X1, X2, X3), U62#(mark X1, X2, X3) -> U62#(X1, X2, X3)) (U62#(ok X1, ok X2, ok X3) -> U62#(X1, X2, X3), U62#(ok X1, ok X2, ok X3) -> U62#(X1, X2, X3)) (U14#(ok X1, ok X2, ok X3) -> U14#(X1, X2, X3), U14#(mark X1, X2, X3) -> U14#(X1, X2, X3)) (U14#(ok X1, ok X2, ok X3) -> U14#(X1, X2, X3), U14#(ok X1, ok X2, ok X3) -> U14#(X1, X2, X3)) (U13#(ok X1, ok X2, ok X3) -> U13#(X1, X2, X3), U13#(mark X1, X2, X3) -> U13#(X1, X2, X3)) (U13#(ok X1, ok X2, ok X3) -> U13#(X1, X2, X3), U13#(ok X1, ok X2, ok X3) -> U13#(X1, X2, X3)) (U11#(ok X1, ok X2, ok X3) -> U11#(X1, X2, X3), U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)) (U11#(ok X1, ok X2, ok X3) -> U11#(X1, X2, X3), U11#(ok X1, ok X2, ok X3) -> U11#(X1, X2, X3)) (active# plus(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# plus(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# plus(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# plus(X1, X2) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# plus(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# plus(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# plus(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# plus(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# plus(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# plus(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# plus(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# plus(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# plus(X1, X2) -> active# X1, active# U15(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# plus(X1, X2) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# plus(X1, X2) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# plus(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# plus(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# plus(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# plus(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# plus(X1, X2) -> active# X1, active# U16 X -> active# X) (active# plus(X1, X2) -> active# X1, active# U16 X -> U16# active X) (active# plus(X1, X2) -> active# X1, active# U22(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# plus(X1, X2) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# plus(X1, X2) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# plus(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# plus(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# plus(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# plus(X1, X2) -> active# X1, active# U23 X -> active# X) (active# plus(X1, X2) -> active# X1, active# U23 X -> U23# active X) (active# plus(X1, X2) -> active# X1, active# U32 X -> active# X) (active# plus(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# plus(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# plus(X1, X2) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# plus(X1, X2) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# plus(X1, X2) -> active# X1, active# U41 X -> active# X) (active# plus(X1, X2) -> active# X1, active# U41 X -> U41# active X) (active# plus(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# plus(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# plus(X1, X2) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# plus(X1, X2) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# plus(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# plus(X1, X2) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# plus(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# plus(X1, X2) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# plus(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# plus(X1, X2) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# plus(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# plus(X1, X2) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# plus(X1, X2) -> active# X1, active# s X -> active# X) (active# plus(X1, X2) -> active# X1, active# s X -> s# active X) (active# plus(X1, X2) -> active# X1, active# plus(N, s M) -> isNat# M) (active# plus(X1, X2) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# plus(X1, X2) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# plus(X1, X2) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# plus(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X2) (active# plus(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# plus(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U64(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U64(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U64(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U64(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U64(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U64(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U64(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U64(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U64(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U64(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U64(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U64(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U64(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U64(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U64(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U64(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U64(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U64(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U64(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U64(X1, X2, X3) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U64(X1, X2, X3) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U64(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U64(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U64(X1, X2, X3) -> active# X1, active# U16 X -> active# X) (active# U64(X1, X2, X3) -> active# X1, active# U16 X -> U16# active X) (active# U64(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U64(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U64(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U64(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U64(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U64(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U64(X1, X2, X3) -> active# X1, active# U23 X -> active# X) (active# U64(X1, X2, X3) -> active# X1, active# U23 X -> U23# active X) (active# U64(X1, X2, X3) -> active# X1, active# U32 X -> active# X) (active# U64(X1, X2, X3) -> active# X1, active# U32 X -> U32# active X) (active# U64(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U64(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U64(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U64(X1, X2, X3) -> active# X1, active# U41 X -> active# X) (active# U64(X1, X2, X3) -> active# X1, active# U41 X -> U41# active X) (active# U64(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U64(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U64(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U64(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U64(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U64(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U64(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U64(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U64(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U64(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U64(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U64(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U64(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U64(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U64(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U64(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U64(X1, X2, X3) -> active# X1, active# s X -> active# X) (active# U64(X1, X2, X3) -> active# X1, active# s X -> s# active X) (active# U64(X1, X2, X3) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U64(X1, X2, X3) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U64(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U64(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U64(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U64(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U64(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U64(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U63(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U63(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U63(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U63(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U63(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U63(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U63(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U63(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U63(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U63(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U63(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U63(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U63(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U63(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U63(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U63(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U63(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U63(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U63(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U63(X1, X2, X3) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U63(X1, X2, X3) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U63(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U63(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U63(X1, X2, X3) -> active# X1, active# U16 X -> active# X) (active# U63(X1, X2, X3) -> active# X1, active# U16 X -> U16# active X) (active# U63(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U63(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U63(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U63(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U63(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U63(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U63(X1, X2, X3) -> active# X1, active# U23 X -> active# X) (active# U63(X1, X2, X3) -> active# X1, active# U23 X -> U23# active X) (active# U63(X1, X2, X3) -> active# X1, active# U32 X -> active# X) (active# U63(X1, X2, X3) -> active# X1, active# U32 X -> U32# active X) (active# U63(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U63(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U63(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U63(X1, X2, X3) -> active# X1, active# U41 X -> active# X) (active# U63(X1, X2, X3) -> active# X1, active# U41 X -> U41# active X) (active# U63(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U63(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U63(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U63(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U63(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U63(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U63(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U63(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U63(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U63(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U63(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U63(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U63(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U63(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U63(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U63(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U63(X1, X2, X3) -> active# X1, active# s X -> active# X) (active# U63(X1, X2, X3) -> active# X1, active# s X -> s# active X) (active# U63(X1, X2, X3) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U63(X1, X2, X3) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U63(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U63(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U63(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U63(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U63(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U63(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U61(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U61(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U61(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U61(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U61(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U61(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U61(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U61(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U61(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U61(X1, X2, X3) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U61(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U61(X1, X2, X3) -> active# X1, active# U16 X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# U16 X -> U16# active X) (active# U61(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U61(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U61(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U61(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U61(X1, X2, X3) -> active# X1, active# U23 X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# U23 X -> U23# active X) (active# U61(X1, X2, X3) -> active# X1, active# U32 X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# U32 X -> U32# active X) (active# U61(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U61(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U61(X1, X2, X3) -> active# X1, active# U41 X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# U41 X -> U41# active X) (active# U61(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U61(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U61(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U61(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U61(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U61(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U61(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U61(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U61(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U61(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U61(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U61(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U61(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U61(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U61(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U61(X1, X2, X3) -> active# X1, active# s X -> active# X) (active# U61(X1, X2, X3) -> active# X1, active# s X -> s# active X) (active# U61(X1, X2, X3) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U61(X1, X2, X3) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U61(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U61(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U61(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U61(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U61(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U61(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U62(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U62(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U62(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U62(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U62(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U62(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U62(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U62(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U62(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U62(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U62(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U62(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U62(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U62(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U62(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U62(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U62(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U62(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U62(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U62(X1, X2, X3) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U62(X1, X2, X3) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U62(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U62(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U62(X1, X2, X3) -> active# X1, active# U16 X -> active# X) (active# U62(X1, X2, X3) -> active# X1, active# U16 X -> U16# active X) (active# U62(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U62(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U62(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U62(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U62(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U62(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U62(X1, X2, X3) -> active# X1, active# U23 X -> active# X) (active# U62(X1, X2, X3) -> active# X1, active# U23 X -> U23# active X) (active# U62(X1, X2, X3) -> active# X1, active# U32 X -> active# X) (active# U62(X1, X2, X3) -> active# X1, active# U32 X -> U32# active X) (active# U62(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U62(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U62(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U62(X1, X2, X3) -> active# X1, active# U41 X -> active# X) (active# U62(X1, X2, X3) -> active# X1, active# U41 X -> U41# active X) (active# U62(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U62(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U62(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U62(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U62(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U62(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U62(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U62(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U62(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U62(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U62(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U62(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U62(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U62(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U62(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U62(X1, X2, X3) -> active# X1, active# s X -> active# X) (active# U62(X1, X2, X3) -> active# X1, active# s X -> s# active X) (active# U62(X1, X2, X3) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U62(X1, X2, X3) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U62(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U62(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U62(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U62(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U62(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U62(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U52(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U52(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U52(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U52(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U52(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U52(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U52(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U52(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U52(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U52(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U52(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U52(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U52(X1, X2) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U52(X1, X2) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U52(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U52(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U52(X1, X2) -> active# X1, active# U16 X -> active# X) (active# U52(X1, X2) -> active# X1, active# U16 X -> U16# active X) (active# U52(X1, X2) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U52(X1, X2) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U52(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U52(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U52(X1, X2) -> active# X1, active# U23 X -> active# X) (active# U52(X1, X2) -> active# X1, active# U23 X -> U23# active X) (active# U52(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U52(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U52(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U52(X1, X2) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U52(X1, X2) -> active# X1, active# U41 X -> active# X) (active# U52(X1, X2) -> active# X1, active# U41 X -> U41# active X) (active# U52(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U52(X1, X2) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U52(X1, X2) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U52(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U52(X1, X2) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U52(X1, X2) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U52(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U52(X1, X2) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U52(X1, X2) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U52(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U52(X1, X2) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U52(X1, X2) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U52(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U52(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U52(X1, X2) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U52(X1, X2) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U52(X1, X2) -> active# X1, active# s X -> active# X) (active# U52(X1, X2) -> active# X1, active# s X -> s# active X) (active# U52(X1, X2) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U52(X1, X2) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U52(X1, X2) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U52(X1, X2) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U52(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U52(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U52(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U52(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U21(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U21(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U21(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U21(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U21(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U21(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U21(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U21(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U21(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U21(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U21(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U21(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U21(X1, X2) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U21(X1, X2) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U21(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U21(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U21(X1, X2) -> active# X1, active# U16 X -> active# X) (active# U21(X1, X2) -> active# X1, active# U16 X -> U16# active X) (active# U21(X1, X2) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U21(X1, X2) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U21(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U21(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U21(X1, X2) -> active# X1, active# U23 X -> active# X) (active# U21(X1, X2) -> active# X1, active# U23 X -> U23# active X) (active# U21(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U21(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U21(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U21(X1, X2) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U21(X1, X2) -> active# X1, active# U41 X -> active# X) (active# U21(X1, X2) -> active# X1, active# U41 X -> U41# active X) (active# U21(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U21(X1, X2) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U21(X1, X2) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U21(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U21(X1, X2) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U21(X1, X2) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U21(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U21(X1, X2) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U21(X1, X2) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U21(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U21(X1, X2) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U21(X1, X2) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U21(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U21(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U21(X1, X2) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U21(X1, X2) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U21(X1, X2) -> active# X1, active# s X -> active# X) (active# U21(X1, X2) -> active# X1, active# s X -> s# active X) (active# U21(X1, X2) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U21(X1, X2) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U21(X1, X2) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U21(X1, X2) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U21(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U21(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U21(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U21(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U15(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U15(X1, X2) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U15(X1, X2) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U15(X1, X2) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U15(X1, X2) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U15(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U15(X1, X2) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U15(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U15(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U15(X1, X2) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U15(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U15(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U15(X1, X2) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U15(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U15(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U15(X1, X2) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U15(X1, X2) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U15(X1, X2) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U15(X1, X2) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U15(X1, X2) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U15(X1, X2) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U15(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U15(X1, X2) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U15(X1, X2) -> active# X1, active# U16 X -> active# X) (active# U15(X1, X2) -> active# X1, active# U16 X -> U16# active X) (active# U15(X1, X2) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U15(X1, X2) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U15(X1, X2) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U15(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U15(X1, X2) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U15(X1, X2) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U15(X1, X2) -> active# X1, active# U23 X -> active# X) (active# U15(X1, X2) -> active# X1, active# U23 X -> U23# active X) (active# U15(X1, X2) -> active# X1, active# U32 X -> active# X) (active# U15(X1, X2) -> active# X1, active# U32 X -> U32# active X) (active# U15(X1, X2) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U15(X1, X2) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U15(X1, X2) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U15(X1, X2) -> active# X1, active# U41 X -> active# X) (active# U15(X1, X2) -> active# X1, active# U41 X -> U41# active X) (active# U15(X1, X2) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U15(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U15(X1, X2) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U15(X1, X2) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U15(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U15(X1, X2) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U15(X1, X2) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U15(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U15(X1, X2) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U15(X1, X2) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U15(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U15(X1, X2) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U15(X1, X2) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U15(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U15(X1, X2) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U15(X1, X2) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U15(X1, X2) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U15(X1, X2) -> active# X1, active# s X -> active# X) (active# U15(X1, X2) -> active# X1, active# s X -> s# active X) (active# U15(X1, X2) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U15(X1, X2) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U15(X1, X2) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U15(X1, X2) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U15(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U15(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U15(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U15(X1, X2) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U14(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U14(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U14(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U14(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U14(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U14(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U14(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U14(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U14(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U14(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U14(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U14(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U14(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U14(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U14(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U14(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U14(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U14(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U14(X1, X2, X3) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U14(X1, X2, X3) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U14(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U14(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U14(X1, X2, X3) -> active# X1, active# U16 X -> active# X) (active# U14(X1, X2, X3) -> active# X1, active# U16 X -> U16# active X) (active# U14(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U14(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U14(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U14(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U14(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U14(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U14(X1, X2, X3) -> active# X1, active# U23 X -> active# X) (active# U14(X1, X2, X3) -> active# X1, active# U23 X -> U23# active X) (active# U14(X1, X2, X3) -> active# X1, active# U32 X -> active# X) (active# U14(X1, X2, X3) -> active# X1, active# U32 X -> U32# active X) (active# U14(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U14(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U14(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U14(X1, X2, X3) -> active# X1, active# U41 X -> active# X) (active# U14(X1, X2, X3) -> active# X1, active# U41 X -> U41# active X) (active# U14(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U14(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U14(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U14(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U14(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U14(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U14(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U14(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U14(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U14(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U14(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U14(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U14(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U14(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U14(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U14(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U14(X1, X2, X3) -> active# X1, active# s X -> active# X) (active# U14(X1, X2, X3) -> active# X1, active# s X -> s# active X) (active# U14(X1, X2, X3) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U14(X1, X2, X3) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U14(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U14(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U14(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U14(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U14(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U14(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U13(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U13(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U13(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U13(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U13(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U13(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U13(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U13(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U13(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U13(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U13(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U13(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U13(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U13(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U13(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U13(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U13(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U13(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U13(X1, X2, X3) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U13(X1, X2, X3) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U13(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U13(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U13(X1, X2, X3) -> active# X1, active# U16 X -> active# X) (active# U13(X1, X2, X3) -> active# X1, active# U16 X -> U16# active X) (active# U13(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U13(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U13(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U13(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U13(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U13(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U13(X1, X2, X3) -> active# X1, active# U23 X -> active# X) (active# U13(X1, X2, X3) -> active# X1, active# U23 X -> U23# active X) (active# U13(X1, X2, X3) -> active# X1, active# U32 X -> active# X) (active# U13(X1, X2, X3) -> active# X1, active# U32 X -> U32# active X) (active# U13(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U13(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U13(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U13(X1, X2, X3) -> active# X1, active# U41 X -> active# X) (active# U13(X1, X2, X3) -> active# X1, active# U41 X -> U41# active X) (active# U13(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U13(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U13(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U13(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U13(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U13(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U13(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U13(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U13(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U13(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U13(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U13(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U13(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U13(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U13(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U13(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U13(X1, X2, X3) -> active# X1, active# s X -> active# X) (active# U13(X1, X2, X3) -> active# X1, active# s X -> s# active X) (active# U13(X1, X2, X3) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U13(X1, X2, X3) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U13(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U13(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U13(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U13(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U13(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U13(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U11(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U11(X1, X2, X3) -> active# X1, active# U12(X1, X2, X3) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U11(X1, X2, X3) -> active# X1, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U11(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> isNatKind# V1) (active# U11(X1, X2, X3) -> active# X1, active# isNatKind s V1 -> U41# isNatKind V1) (active# U11(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U11(X1, X2, X3) -> active# X1, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U11(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U11(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U11(X1, X2, X3) -> active# X1, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U11(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U11(X1, X2, X3) -> active# X1, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U11(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U11(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U11(X1, X2, X3) -> active# X1, active# U14(tt(), V1, V2) -> isNat# V1) (active# U11(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U11(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> isNat# V2) (active# U11(X1, X2, X3) -> active# X1, active# U15(tt(), V2) -> U16# isNat V2) (active# U11(X1, X2, X3) -> active# X1, active# isNat s V1 -> isNatKind# V1) (active# U11(X1, X2, X3) -> active# X1, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U11(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U11(X1, X2, X3) -> active# X1, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U11(X1, X2, X3) -> active# X1, active# U16 X -> active# X) (active# U11(X1, X2, X3) -> active# X1, active# U16 X -> U16# active X) (active# U11(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U11(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> isNat# V1) (active# U11(X1, X2, X3) -> active# X1, active# U22(tt(), V1) -> U23# isNat V1) (active# U11(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U11(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> isNatKind# V1) (active# U11(X1, X2, X3) -> active# X1, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U11(X1, X2, X3) -> active# X1, active# U23 X -> active# X) (active# U11(X1, X2, X3) -> active# X1, active# U23 X -> U23# active X) (active# U11(X1, X2, X3) -> active# X1, active# U32 X -> active# X) (active# U11(X1, X2, X3) -> active# X1, active# U32 X -> U32# active X) (active# U11(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U11(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> isNatKind# V2) (active# U11(X1, X2, X3) -> active# X1, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U11(X1, X2, X3) -> active# X1, active# U41 X -> active# X) (active# U11(X1, X2, X3) -> active# X1, active# U41 X -> U41# active X) (active# U11(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U11(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U11(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> isNatKind# N) (active# U11(X1, X2, X3) -> active# X1, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U11(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U11(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> isNat# N) (active# U11(X1, X2, X3) -> active# X1, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U11(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U11(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> isNatKind# M) (active# U11(X1, X2, X3) -> active# X1, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U11(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U11(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> isNatKind# N) (active# U11(X1, X2, X3) -> active# X1, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U11(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U11(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U11(X1, X2, X3) -> active# X1, active# U64(tt(), M, N) -> plus#(N, M)) (active# U11(X1, X2, X3) -> active# X1, active# s X -> active# X) (active# U11(X1, X2, X3) -> active# X1, active# s X -> s# active X) (active# U11(X1, X2, X3) -> active# X1, active# plus(N, s M) -> isNat# M) (active# U11(X1, X2, X3) -> active# X1, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U11(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> isNat# N) (active# U11(X1, X2, X3) -> active# X1, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U11(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X1) (active# U11(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> active# X2) (active# U11(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U11(X1, X2, X3) -> active# X1, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U12(X1, X2, X3) -> U12#(active X1, X2, X3), U12#(mark X1, X2, X3) -> U12#(X1, X2, X3)) (active# U12(X1, X2, X3) -> U12#(active X1, X2, X3), U12#(ok X1, ok X2, ok X3) -> U12#(X1, X2, X3)) (U12#(mark X1, X2, X3) -> U12#(X1, X2, X3), U12#(mark X1, X2, X3) -> U12#(X1, X2, X3)) (U12#(mark X1, X2, X3) -> U12#(X1, X2, X3), U12#(ok X1, ok X2, ok X3) -> U12#(X1, X2, X3)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U64(X1, X2, X3) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U64(X1, X2, X3) -> proper# X2, proper# isNat X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U64(X1, X2, X3) -> proper# X2, proper# U16 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U64(X1, X2, X3) -> proper# X2, proper# U23 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U64(X1, X2, X3) -> proper# X2, proper# U32 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U64(X1, X2, X3) -> proper# X2, proper# U41 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X2, proper# s X -> s# proper X) (proper# U64(X1, X2, X3) -> proper# X2, proper# s X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# isNat X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U16 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U23 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U32 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U41 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X2, proper# s X -> s# proper X) (proper# U61(X1, X2, X3) -> proper# X2, proper# s X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U51(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U51(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U51(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U51(X1, X2) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U51(X1, X2) -> proper# X2, proper# U16 X -> proper# X) (proper# U51(X1, X2) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U51(X1, X2) -> proper# X2, proper# U23 X -> proper# X) (proper# U51(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U51(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U51(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U51(X1, X2) -> proper# X2, proper# U41 X -> proper# X) (proper# U51(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U51(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U51(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U51(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U51(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U51(X1, X2) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U51(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U51(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U31(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U31(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U16 X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U23 X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U31(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U31(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U31(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U31(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U31(X1, X2) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U31(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U31(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U22(X1, X2) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U22(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U22(X1, X2) -> proper# X2, proper# isNat X -> proper# X) (proper# U22(X1, X2) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U22(X1, X2) -> proper# X2, proper# U16 X -> proper# X) (proper# U22(X1, X2) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U22(X1, X2) -> proper# X2, proper# U23 X -> proper# X) (proper# U22(X1, X2) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U22(X1, X2) -> proper# X2, proper# U32 X -> proper# X) (proper# U22(X1, X2) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U22(X1, X2) -> proper# X2, proper# U41 X -> proper# X) (proper# U22(X1, X2) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U22(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U22(X1, X2) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U22(X1, X2) -> proper# X2, proper# s X -> s# proper X) (proper# U22(X1, X2) -> proper# X2, proper# s X -> proper# X) (proper# U22(X1, X2) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U22(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U22(X1, X2) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U14(X1, X2, X3) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U14(X1, X2, X3) -> proper# X2, proper# isNat X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U14(X1, X2, X3) -> proper# X2, proper# U16 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U14(X1, X2, X3) -> proper# X2, proper# U23 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U14(X1, X2, X3) -> proper# X2, proper# U32 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U14(X1, X2, X3) -> proper# X2, proper# U41 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X2, proper# s X -> s# proper X) (proper# U14(X1, X2, X3) -> proper# X2, proper# s X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X2, proper# isNatKind X -> isNatKind# proper X) (proper# U11(X1, X2, X3) -> proper# X2, proper# isNatKind X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U15(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# isNat X -> isNat# proper X) (proper# U11(X1, X2, X3) -> proper# X2, proper# isNat X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X2, proper# U16 X -> U16# proper X) (proper# U11(X1, X2, X3) -> proper# X2, proper# U16 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U22(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U21(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U23 X -> U23# proper X) (proper# U11(X1, X2, X3) -> proper# X2, proper# U23 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X2, proper# U32 X -> U32# proper X) (proper# U11(X1, X2, X3) -> proper# X2, proper# U32 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U31(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U41 X -> U41# proper X) (proper# U11(X1, X2, X3) -> proper# X2, proper# U41 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U52(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U51(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X2, proper# s X -> s# proper X) (proper# U11(X1, X2, X3) -> proper# X2, proper# s X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X2, proper# plus(X1, X2) -> proper# X2) (active# plus(X1, X2) -> active# X2, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X2, active# U12(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# plus(X1, X2) -> active# X2, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# plus(X1, X2) -> active# X2, active# isNatKind s V1 -> isNatKind# V1) (active# plus(X1, X2) -> active# X2, active# isNatKind s V1 -> U41# isNatKind V1) (active# plus(X1, X2) -> active# X2, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# plus(X1, X2) -> active# X2, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# plus(X1, X2) -> active# X2, active# U11(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X2, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# plus(X1, X2) -> active# X2, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# plus(X1, X2) -> active# X2, active# U13(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X2, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# plus(X1, X2) -> active# X2, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# plus(X1, X2) -> active# X2, active# U14(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X2, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# plus(X1, X2) -> active# X2, active# U14(tt(), V1, V2) -> isNat# V1) (active# plus(X1, X2) -> active# X2, active# U15(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U15(X1, X2) -> U15#(active X1, X2)) (active# plus(X1, X2) -> active# X2, active# U15(tt(), V2) -> isNat# V2) (active# plus(X1, X2) -> active# X2, active# U15(tt(), V2) -> U16# isNat V2) (active# plus(X1, X2) -> active# X2, active# isNat s V1 -> isNatKind# V1) (active# plus(X1, X2) -> active# X2, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# plus(X1, X2) -> active# X2, active# isNat plus(V1, V2) -> isNatKind# V1) (active# plus(X1, X2) -> active# X2, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# plus(X1, X2) -> active# X2, active# U16 X -> active# X) (active# plus(X1, X2) -> active# X2, active# U16 X -> U16# active X) (active# plus(X1, X2) -> active# X2, active# U22(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U22(X1, X2) -> U22#(active X1, X2)) (active# plus(X1, X2) -> active# X2, active# U22(tt(), V1) -> isNat# V1) (active# plus(X1, X2) -> active# X2, active# U22(tt(), V1) -> U23# isNat V1) (active# plus(X1, X2) -> active# X2, active# U21(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U21(X1, X2) -> U21#(active X1, X2)) (active# plus(X1, X2) -> active# X2, active# U21(tt(), V1) -> isNatKind# V1) (active# plus(X1, X2) -> active# X2, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# plus(X1, X2) -> active# X2, active# U23 X -> active# X) (active# plus(X1, X2) -> active# X2, active# U23 X -> U23# active X) (active# plus(X1, X2) -> active# X2, active# U32 X -> active# X) (active# plus(X1, X2) -> active# X2, active# U32 X -> U32# active X) (active# plus(X1, X2) -> active# X2, active# U31(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U31(X1, X2) -> U31#(active X1, X2)) (active# plus(X1, X2) -> active# X2, active# U31(tt(), V2) -> isNatKind# V2) (active# plus(X1, X2) -> active# X2, active# U31(tt(), V2) -> U32# isNatKind V2) (active# plus(X1, X2) -> active# X2, active# U41 X -> active# X) (active# plus(X1, X2) -> active# X2, active# U41 X -> U41# active X) (active# plus(X1, X2) -> active# X2, active# U52(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U52(X1, X2) -> U52#(active X1, X2)) (active# plus(X1, X2) -> active# X2, active# U51(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U51(X1, X2) -> U51#(active X1, X2)) (active# plus(X1, X2) -> active# X2, active# U51(tt(), N) -> isNatKind# N) (active# plus(X1, X2) -> active# X2, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# plus(X1, X2) -> active# X2, active# U62(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X2, active# U62(tt(), M, N) -> isNat# N) (active# plus(X1, X2) -> active# X2, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# plus(X1, X2) -> active# X2, active# U61(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X2, active# U61(tt(), M, N) -> isNatKind# M) (active# plus(X1, X2) -> active# X2, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# plus(X1, X2) -> active# X2, active# U63(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X2, active# U63(tt(), M, N) -> isNatKind# N) (active# plus(X1, X2) -> active# X2, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# plus(X1, X2) -> active# X2, active# U64(X1, X2, X3) -> active# X1) (active# plus(X1, X2) -> active# X2, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# plus(X1, X2) -> active# X2, active# U64(tt(), M, N) -> s# plus(N, M)) (active# plus(X1, X2) -> active# X2, active# U64(tt(), M, N) -> plus#(N, M)) (active# plus(X1, X2) -> active# X2, active# s X -> active# X) (active# plus(X1, X2) -> active# X2, active# s X -> s# active X) (active# plus(X1, X2) -> active# X2, active# plus(N, s M) -> isNat# M) (active# plus(X1, X2) -> active# X2, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# plus(X1, X2) -> active# X2, active# plus(N, 0()) -> isNat# N) (active# plus(X1, X2) -> active# X2, active# plus(N, 0()) -> U51#(isNat N, N)) (active# plus(X1, X2) -> active# X2, active# plus(X1, X2) -> active# X1) (active# plus(X1, X2) -> active# X2, active# plus(X1, X2) -> active# X2) (active# plus(X1, X2) -> active# X2, active# plus(X1, X2) -> plus#(X1, active X2)) (active# plus(X1, X2) -> active# X2, active# plus(X1, X2) -> plus#(active X1, X2)) (plus#(mark X1, X2) -> plus#(X1, X2), plus#(X1, mark X2) -> plus#(X1, X2)) (plus#(mark X1, X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (plus#(mark X1, X2) -> plus#(X1, X2), plus#(ok X1, ok X2) -> plus#(X1, X2)) (U51#(ok X1, ok X2) -> U51#(X1, X2), U51#(mark X1, X2) -> U51#(X1, X2)) (U51#(ok X1, ok X2) -> U51#(X1, X2), U51#(ok X1, ok X2) -> U51#(X1, X2)) (U52#(ok X1, ok X2) -> U52#(X1, X2), U52#(mark X1, X2) -> U52#(X1, X2)) (U52#(ok X1, ok X2) -> U52#(X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2)) (U31#(ok X1, ok X2) -> U31#(X1, X2), U31#(mark X1, X2) -> U31#(X1, X2)) (U31#(ok X1, ok X2) -> U31#(X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2)) (U21#(ok X1, ok X2) -> U21#(X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)) (U21#(ok X1, ok X2) -> U21#(X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2)) (U22#(ok X1, ok X2) -> U22#(X1, X2), U22#(mark X1, X2) -> U22#(X1, X2)) (U22#(ok X1, ok X2) -> U22#(X1, X2), U22#(ok X1, ok X2) -> U22#(X1, X2)) (U15#(ok X1, ok X2) -> U15#(X1, X2), U15#(mark X1, X2) -> U15#(X1, X2)) (U15#(ok X1, ok X2) -> U15#(X1, X2), U15#(ok X1, ok X2) -> U15#(X1, X2)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U64(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U64(X1, X2, X3) -> proper# X3, proper# isNat X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X3, proper# U16 X -> U16# proper X) (proper# U64(X1, X2, X3) -> proper# X3, proper# U16 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U23 X -> U23# proper X) (proper# U64(X1, X2, X3) -> proper# X3, proper# U23 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U64(X1, X2, X3) -> proper# X3, proper# U32 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U41 X -> U41# proper X) (proper# U64(X1, X2, X3) -> proper# X3, proper# U41 X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U64(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X2) (proper# U64(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X3) (proper# U64(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X) (proper# U64(X1, X2, X3) -> proper# X3, proper# s X -> proper# X) (proper# U64(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U64(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X1) (proper# U64(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# isNat X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U16 X -> U16# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U16 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U23 X -> U23# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U23 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U32 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U41 X -> U41# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U41 X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U61(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X2) (proper# U61(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X3) (proper# U61(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X) (proper# U61(X1, X2, X3) -> proper# X3, proper# s X -> proper# X) (proper# U61(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U61(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X1) (proper# U61(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U14(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U14(X1, X2, X3) -> proper# X3, proper# isNat X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X3, proper# U16 X -> U16# proper X) (proper# U14(X1, X2, X3) -> proper# X3, proper# U16 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U23 X -> U23# proper X) (proper# U14(X1, X2, X3) -> proper# X3, proper# U23 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U14(X1, X2, X3) -> proper# X3, proper# U32 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U41 X -> U41# proper X) (proper# U14(X1, X2, X3) -> proper# X3, proper# U41 X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U14(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X2) (proper# U14(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X3) (proper# U14(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X) (proper# U14(X1, X2, X3) -> proper# X3, proper# s X -> proper# X) (proper# U14(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U14(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X1) (proper# U14(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U12(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X3, proper# isNatKind X -> isNatKind# proper X) (proper# U11(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U11(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# isNat X -> isNat# proper X) (proper# U11(X1, X2, X3) -> proper# X3, proper# isNat X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X3, proper# U16 X -> U16# proper X) (proper# U11(X1, X2, X3) -> proper# X3, proper# U16 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U22(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U21(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U23 X -> U23# proper X) (proper# U11(X1, X2, X3) -> proper# X3, proper# U23 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X3, proper# U32 X -> U32# proper X) (proper# U11(X1, X2, X3) -> proper# X3, proper# U32 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U31(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U41 X -> U41# proper X) (proper# U11(X1, X2, X3) -> proper# X3, proper# U41 X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U52(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U51(X1, X2) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U62(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U11(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X2) (proper# U11(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X3) (proper# U11(X1, X2, X3) -> proper# X3, proper# s X -> s# proper X) (proper# U11(X1, X2, X3) -> proper# X3, proper# s X -> proper# X) (proper# U11(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U11(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X1) (proper# U11(X1, X2, X3) -> proper# X3, proper# plus(X1, X2) -> proper# X2) (active# U22(tt(), V1) -> U23# isNat V1, U23# mark X -> U23# X) (active# U22(tt(), V1) -> U23# isNat V1, U23# ok X -> U23# X) (active# U31(tt(), V2) -> U32# isNatKind V2, U32# mark X -> U32# X) (active# U31(tt(), V2) -> U32# isNatKind V2, U32# ok X -> U32# X) (top# ok X -> top# active X, top# mark X -> proper# X) (top# ok X -> top# active X, top# mark X -> top# proper X) (top# ok X -> top# active X, top# ok X -> active# X) (top# ok X -> top# active X, top# ok X -> top# active X) (proper# s X -> s# proper X, s# mark X -> s# X) (proper# s X -> s# proper X, s# ok X -> s# X) (proper# U32 X -> U32# proper X, U32# mark X -> U32# X) (proper# U32 X -> U32# proper X, U32# ok X -> U32# X) (proper# U16 X -> U16# proper X, U16# mark X -> U16# X) (proper# U16 X -> U16# proper X, U16# ok X -> U16# X) (proper# isNatKind X -> isNatKind# proper X, isNatKind# ok X -> isNatKind# X) (active# U41 X -> U41# active X, U41# mark X -> U41# X) (active# U41 X -> U41# active X, U41# ok X -> U41# X) (active# U23 X -> U23# active X, U23# mark X -> U23# X) (active# U23 X -> U23# active X, U23# ok X -> U23# X) (active# plus(X1, X2) -> plus#(active X1, X2), plus#(mark X1, X2) -> plus#(X1, X2)) (active# plus(X1, X2) -> plus#(active X1, X2), plus#(ok X1, ok X2) -> plus#(X1, X2)) (active# U52(X1, X2) -> U52#(active X1, X2), U52#(mark X1, X2) -> U52#(X1, X2)) (active# U52(X1, X2) -> U52#(active X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2)) (active# U21(X1, X2) -> U21#(active X1, X2), U21#(mark X1, X2) -> U21#(X1, X2)) (active# U21(X1, X2) -> U21#(active X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2)) (active# U15(X1, X2) -> U15#(active X1, X2), U15#(mark X1, X2) -> U15#(X1, X2)) (active# U15(X1, X2) -> U15#(active X1, X2), U15#(ok X1, ok X2) -> U15#(X1, X2)) (top# mark X -> proper# X, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (top# mark X -> proper# X, proper# U12(X1, X2, X3) -> proper# X1) (top# mark X -> proper# X, proper# U12(X1, X2, X3) -> proper# X2) (top# mark X -> proper# X, proper# U12(X1, X2, X3) -> proper# X3) (top# mark X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (top# mark X -> proper# X, proper# isNatKind X -> proper# X) (top# mark X -> proper# X, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (top# mark X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1) (top# mark X -> proper# X, proper# U11(X1, X2, X3) -> proper# X2) (top# mark X -> proper# X, proper# U11(X1, X2, X3) -> proper# X3) (top# mark X -> proper# X, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (top# mark X -> proper# X, proper# U13(X1, X2, X3) -> proper# X1) (top# mark X -> proper# X, proper# U13(X1, X2, X3) -> proper# X2) (top# mark X -> proper# X, proper# U13(X1, X2, X3) -> proper# X3) (top# mark X -> proper# X, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (top# mark X -> proper# X, proper# U14(X1, X2, X3) -> proper# X1) (top# mark X -> proper# X, proper# U14(X1, X2, X3) -> proper# X2) (top# mark X -> proper# X, proper# U14(X1, X2, X3) -> proper# X3) (top# mark X -> proper# X, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U15(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U15(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# isNat X -> isNat# proper X) (top# mark X -> proper# X, proper# isNat X -> proper# X) (top# mark X -> proper# X, proper# U16 X -> U16# proper X) (top# mark X -> proper# X, proper# U16 X -> proper# X) (top# mark X -> proper# X, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U22(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U22(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U21(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U21(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U23 X -> U23# proper X) (top# mark X -> proper# X, proper# U23 X -> proper# X) (top# mark X -> proper# X, proper# U32 X -> U32# proper X) (top# mark X -> proper# X, proper# U32 X -> proper# X) (top# mark X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U31(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U31(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U41 X -> U41# proper X) (top# mark X -> proper# X, proper# U41 X -> proper# X) (top# mark X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U52(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U52(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (top# mark X -> proper# X, proper# U51(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# U51(X1, X2) -> proper# X2) (top# mark X -> proper# X, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (top# mark X -> proper# X, proper# U62(X1, X2, X3) -> proper# X1) (top# mark X -> proper# X, proper# U62(X1, X2, X3) -> proper# X2) (top# mark X -> proper# X, proper# U62(X1, X2, X3) -> proper# X3) (top# mark X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (top# mark X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (top# mark X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (top# mark X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (top# mark X -> proper# X, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (top# mark X -> proper# X, proper# U63(X1, X2, X3) -> proper# X1) (top# mark X -> proper# X, proper# U63(X1, X2, X3) -> proper# X2) (top# mark X -> proper# X, proper# U63(X1, X2, X3) -> proper# X3) (top# mark X -> proper# X, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (top# mark X -> proper# X, proper# U64(X1, X2, X3) -> proper# X1) (top# mark X -> proper# X, proper# U64(X1, X2, X3) -> proper# X2) (top# mark X -> proper# X, proper# U64(X1, X2, X3) -> proper# X3) (top# mark X -> proper# X, proper# s X -> s# proper X) (top# mark X -> proper# X, proper# s X -> proper# X) (top# mark X -> proper# X, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (top# mark X -> proper# X, proper# plus(X1, X2) -> proper# X1) (top# mark X -> proper# X, proper# plus(X1, X2) -> proper# X2) (proper# U41 X -> proper# X, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U41 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X1) (proper# U41 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X2) (proper# U41 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X3) (proper# U41 X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# U41 X -> proper# X, proper# isNatKind X -> proper# X) (proper# U41 X -> proper# X, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U41 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1) (proper# U41 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X2) (proper# U41 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X3) (proper# U41 X -> proper# X, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U41 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X1) (proper# U41 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X2) (proper# U41 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X3) (proper# U41 X -> proper# X, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U41 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X1) (proper# U41 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X2) (proper# U41 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X3) (proper# U41 X -> proper# X, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U41 X -> proper# X, proper# U15(X1, X2) -> proper# X1) (proper# U41 X -> proper# X, proper# U15(X1, X2) -> proper# X2) (proper# U41 X -> proper# X, proper# isNat X -> isNat# proper X) (proper# U41 X -> proper# X, proper# isNat X -> proper# X) (proper# U41 X -> proper# X, proper# U16 X -> U16# proper X) (proper# U41 X -> proper# X, proper# U16 X -> proper# X) (proper# U41 X -> proper# X, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U41 X -> proper# X, proper# U22(X1, X2) -> proper# X1) (proper# U41 X -> proper# X, proper# U22(X1, X2) -> proper# X2) (proper# U41 X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U41 X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# U41 X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# U41 X -> proper# X, proper# U23 X -> U23# proper X) (proper# U41 X -> proper# X, proper# U23 X -> proper# X) (proper# U41 X -> proper# X, proper# U32 X -> U32# proper X) (proper# U41 X -> proper# X, proper# U32 X -> proper# X) (proper# U41 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U41 X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# U41 X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# U41 X -> proper# X, proper# U41 X -> U41# proper X) (proper# U41 X -> proper# X, proper# U41 X -> proper# X) (proper# U41 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# U41 X -> proper# X, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U41 X -> proper# X, proper# U51(X1, X2) -> proper# X1) (proper# U41 X -> proper# X, proper# U51(X1, X2) -> proper# X2) (proper# U41 X -> proper# X, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U41 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X1) (proper# U41 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X2) (proper# U41 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X3) (proper# U41 X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U41 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# U41 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# U41 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# U41 X -> proper# X, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U41 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X1) (proper# U41 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X2) (proper# U41 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X3) (proper# U41 X -> proper# X, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U41 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X1) (proper# U41 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X2) (proper# U41 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X3) (proper# U41 X -> proper# X, proper# s X -> s# proper X) (proper# U41 X -> proper# X, proper# s X -> proper# X) (proper# U41 X -> proper# X, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U41 X -> proper# X, proper# plus(X1, X2) -> proper# X1) (proper# U41 X -> proper# X, proper# plus(X1, X2) -> proper# X2) (proper# U23 X -> proper# X, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# U23 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X1) (proper# U23 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X2) (proper# U23 X -> proper# X, proper# U12(X1, X2, X3) -> proper# X3) (proper# U23 X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# U23 X -> proper# X, proper# isNatKind X -> proper# X) (proper# U23 X -> proper# X, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# U23 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1) (proper# U23 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X2) (proper# U23 X -> proper# X, proper# U11(X1, X2, X3) -> proper# X3) (proper# U23 X -> proper# X, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# U23 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X1) (proper# U23 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X2) (proper# U23 X -> proper# X, proper# U13(X1, X2, X3) -> proper# X3) (proper# U23 X -> proper# X, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# U23 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X1) (proper# U23 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X2) (proper# U23 X -> proper# X, proper# U14(X1, X2, X3) -> proper# X3) (proper# U23 X -> proper# X, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# U23 X -> proper# X, proper# U15(X1, X2) -> proper# X1) (proper# U23 X -> proper# X, proper# U15(X1, X2) -> proper# X2) (proper# U23 X -> proper# X, proper# isNat X -> isNat# proper X) (proper# U23 X -> proper# X, proper# isNat X -> proper# X) (proper# U23 X -> proper# X, proper# U16 X -> U16# proper X) (proper# U23 X -> proper# X, proper# U16 X -> proper# X) (proper# U23 X -> proper# X, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# U23 X -> proper# X, proper# U22(X1, X2) -> proper# X1) (proper# U23 X -> proper# X, proper# U22(X1, X2) -> proper# X2) (proper# U23 X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# U23 X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# U23 X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# U23 X -> proper# X, proper# U23 X -> U23# proper X) (proper# U23 X -> proper# X, proper# U23 X -> proper# X) (proper# U23 X -> proper# X, proper# U32 X -> U32# proper X) (proper# U23 X -> proper# X, proper# U32 X -> proper# X) (proper# U23 X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# U23 X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# U23 X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# U23 X -> proper# X, proper# U41 X -> U41# proper X) (proper# U23 X -> proper# X, proper# U41 X -> proper# X) (proper# U23 X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# U23 X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# U23 X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# U23 X -> proper# X, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# U23 X -> proper# X, proper# U51(X1, X2) -> proper# X1) (proper# U23 X -> proper# X, proper# U51(X1, X2) -> proper# X2) (proper# U23 X -> proper# X, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# U23 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X1) (proper# U23 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X2) (proper# U23 X -> proper# X, proper# U62(X1, X2, X3) -> proper# X3) (proper# U23 X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# U23 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# U23 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# U23 X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# U23 X -> proper# X, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# U23 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X1) (proper# U23 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X2) (proper# U23 X -> proper# X, proper# U63(X1, X2, X3) -> proper# X3) (proper# U23 X -> proper# X, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# U23 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X1) (proper# U23 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X2) (proper# U23 X -> proper# X, proper# U64(X1, X2, X3) -> proper# X3) (proper# U23 X -> proper# X, proper# s X -> s# proper X) (proper# U23 X -> proper# X, proper# s X -> proper# X) (proper# U23 X -> proper# X, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# U23 X -> proper# X, proper# plus(X1, X2) -> proper# X1) (proper# U23 X -> proper# X, proper# plus(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U12(X1, X2, X3) -> U12#(proper X1, proper X2, proper X3)) (proper# isNat X -> proper# X, proper# U12(X1, X2, X3) -> proper# X1) (proper# isNat X -> proper# X, proper# U12(X1, X2, X3) -> proper# X2) (proper# isNat X -> proper# X, proper# U12(X1, X2, X3) -> proper# X3) (proper# isNat X -> proper# X, proper# isNatKind X -> isNatKind# proper X) (proper# isNat X -> proper# X, proper# isNatKind X -> proper# X) (proper# isNat X -> proper# X, proper# U11(X1, X2, X3) -> U11#(proper X1, proper X2, proper X3)) (proper# isNat X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1) (proper# isNat X -> proper# X, proper# U11(X1, X2, X3) -> proper# X2) (proper# isNat X -> proper# X, proper# U11(X1, X2, X3) -> proper# X3) (proper# isNat X -> proper# X, proper# U13(X1, X2, X3) -> U13#(proper X1, proper X2, proper X3)) (proper# isNat X -> proper# X, proper# U13(X1, X2, X3) -> proper# X1) (proper# isNat X -> proper# X, proper# U13(X1, X2, X3) -> proper# X2) (proper# isNat X -> proper# X, proper# U13(X1, X2, X3) -> proper# X3) (proper# isNat X -> proper# X, proper# U14(X1, X2, X3) -> U14#(proper X1, proper X2, proper X3)) (proper# isNat X -> proper# X, proper# U14(X1, X2, X3) -> proper# X1) (proper# isNat X -> proper# X, proper# U14(X1, X2, X3) -> proper# X2) (proper# isNat X -> proper# X, proper# U14(X1, X2, X3) -> proper# X3) (proper# isNat X -> proper# X, proper# U15(X1, X2) -> U15#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# U15(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U15(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# isNat X -> isNat# proper X) (proper# isNat X -> proper# X, proper# isNat X -> proper# X) (proper# isNat X -> proper# X, proper# U16 X -> U16# proper X) (proper# isNat X -> proper# X, proper# U16 X -> proper# X) (proper# isNat X -> proper# X, proper# U22(X1, X2) -> U22#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# U22(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U22(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U21(X1, X2) -> U21#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# U21(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U21(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U23 X -> U23# proper X) (proper# isNat X -> proper# X, proper# U23 X -> proper# X) (proper# isNat X -> proper# X, proper# U32 X -> U32# proper X) (proper# isNat X -> proper# X, proper# U32 X -> proper# X) (proper# isNat X -> proper# X, proper# U31(X1, X2) -> U31#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# U31(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U31(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U41 X -> U41# proper X) (proper# isNat X -> proper# X, proper# U41 X -> proper# X) (proper# isNat X -> proper# X, proper# U52(X1, X2) -> U52#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# U52(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U52(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U51(X1, X2) -> U51#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# U51(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# U51(X1, X2) -> proper# X2) (proper# isNat X -> proper# X, proper# U62(X1, X2, X3) -> U62#(proper X1, proper X2, proper X3)) (proper# isNat X -> proper# X, proper# U62(X1, X2, X3) -> proper# X1) (proper# isNat X -> proper# X, proper# U62(X1, X2, X3) -> proper# X2) (proper# isNat X -> proper# X, proper# U62(X1, X2, X3) -> proper# X3) (proper# isNat X -> proper# X, proper# U61(X1, X2, X3) -> U61#(proper X1, proper X2, proper X3)) (proper# isNat X -> proper# X, proper# U61(X1, X2, X3) -> proper# X1) (proper# isNat X -> proper# X, proper# U61(X1, X2, X3) -> proper# X2) (proper# isNat X -> proper# X, proper# U61(X1, X2, X3) -> proper# X3) (proper# isNat X -> proper# X, proper# U63(X1, X2, X3) -> U63#(proper X1, proper X2, proper X3)) (proper# isNat X -> proper# X, proper# U63(X1, X2, X3) -> proper# X1) (proper# isNat X -> proper# X, proper# U63(X1, X2, X3) -> proper# X2) (proper# isNat X -> proper# X, proper# U63(X1, X2, X3) -> proper# X3) (proper# isNat X -> proper# X, proper# U64(X1, X2, X3) -> U64#(proper X1, proper X2, proper X3)) (proper# isNat X -> proper# X, proper# U64(X1, X2, X3) -> proper# X1) (proper# isNat X -> proper# X, proper# U64(X1, X2, X3) -> proper# X2) (proper# isNat X -> proper# X, proper# U64(X1, X2, X3) -> proper# X3) (proper# isNat X -> proper# X, proper# s X -> s# proper X) (proper# isNat X -> proper# X, proper# s X -> proper# X) (proper# isNat X -> proper# X, proper# plus(X1, X2) -> plus#(proper X1, proper X2)) (proper# isNat X -> proper# X, proper# plus(X1, X2) -> proper# X1) (proper# isNat X -> proper# X, proper# plus(X1, X2) -> proper# X2) (s# ok X -> s# X, s# mark X -> s# X) (s# ok X -> s# X, s# ok X -> s# X) (U41# ok X -> U41# X, U41# mark X -> U41# X) (U41# ok X -> U41# X, U41# ok X -> U41# X) (U32# ok X -> U32# X, U32# mark X -> U32# X) (U32# ok X -> U32# X, U32# ok X -> U32# X) (U23# ok X -> U23# X, U23# mark X -> U23# X) (U23# ok X -> U23# X, U23# ok X -> U23# X) (U16# ok X -> U16# X, U16# mark X -> U16# X) (U16# ok X -> U16# X, U16# ok X -> U16# X) (isNat# ok X -> isNat# X, isNat# ok X -> isNat# X) (active# U41 X -> active# X, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U41 X -> active# X, active# U12(X1, X2, X3) -> active# X1) (active# U41 X -> active# X, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U41 X -> active# X, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U41 X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# U41 X -> active# X, active# isNatKind s V1 -> U41# isNatKind V1) (active# U41 X -> active# X, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U41 X -> active# X, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U41 X -> active# X, active# U11(X1, X2, X3) -> active# X1) (active# U41 X -> active# X, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U41 X -> active# X, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U41 X -> active# X, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U41 X -> active# X, active# U13(X1, X2, X3) -> active# X1) (active# U41 X -> active# X, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U41 X -> active# X, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U41 X -> active# X, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U41 X -> active# X, active# U14(X1, X2, X3) -> active# X1) (active# U41 X -> active# X, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U41 X -> active# X, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U41 X -> active# X, active# U14(tt(), V1, V2) -> isNat# V1) (active# U41 X -> active# X, active# U15(X1, X2) -> active# X1) (active# U41 X -> active# X, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U41 X -> active# X, active# U15(tt(), V2) -> isNat# V2) (active# U41 X -> active# X, active# U15(tt(), V2) -> U16# isNat V2) (active# U41 X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# U41 X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U41 X -> active# X, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U41 X -> active# X, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U41 X -> active# X, active# U16 X -> active# X) (active# U41 X -> active# X, active# U16 X -> U16# active X) (active# U41 X -> active# X, active# U22(X1, X2) -> active# X1) (active# U41 X -> active# X, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U41 X -> active# X, active# U22(tt(), V1) -> isNat# V1) (active# U41 X -> active# X, active# U22(tt(), V1) -> U23# isNat V1) (active# U41 X -> active# X, active# U21(X1, X2) -> active# X1) (active# U41 X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U41 X -> active# X, active# U21(tt(), V1) -> isNatKind# V1) (active# U41 X -> active# X, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U41 X -> active# X, active# U23 X -> active# X) (active# U41 X -> active# X, active# U23 X -> U23# active X) (active# U41 X -> active# X, active# U32 X -> active# X) (active# U41 X -> active# X, active# U32 X -> U32# active X) (active# U41 X -> active# X, active# U31(X1, X2) -> active# X1) (active# U41 X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U41 X -> active# X, active# U31(tt(), V2) -> isNatKind# V2) (active# U41 X -> active# X, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U41 X -> active# X, active# U41 X -> active# X) (active# U41 X -> active# X, active# U41 X -> U41# active X) (active# U41 X -> active# X, active# U52(X1, X2) -> active# X1) (active# U41 X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U41 X -> active# X, active# U51(X1, X2) -> active# X1) (active# U41 X -> active# X, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U41 X -> active# X, active# U51(tt(), N) -> isNatKind# N) (active# U41 X -> active# X, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U41 X -> active# X, active# U62(X1, X2, X3) -> active# X1) (active# U41 X -> active# X, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U41 X -> active# X, active# U62(tt(), M, N) -> isNat# N) (active# U41 X -> active# X, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U41 X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# U41 X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U41 X -> active# X, active# U61(tt(), M, N) -> isNatKind# M) (active# U41 X -> active# X, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U41 X -> active# X, active# U63(X1, X2, X3) -> active# X1) (active# U41 X -> active# X, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U41 X -> active# X, active# U63(tt(), M, N) -> isNatKind# N) (active# U41 X -> active# X, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U41 X -> active# X, active# U64(X1, X2, X3) -> active# X1) (active# U41 X -> active# X, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U41 X -> active# X, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U41 X -> active# X, active# U64(tt(), M, N) -> plus#(N, M)) (active# U41 X -> active# X, active# s X -> active# X) (active# U41 X -> active# X, active# s X -> s# active X) (active# U41 X -> active# X, active# plus(N, s M) -> isNat# M) (active# U41 X -> active# X, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U41 X -> active# X, active# plus(N, 0()) -> isNat# N) (active# U41 X -> active# X, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U41 X -> active# X, active# plus(X1, X2) -> active# X1) (active# U41 X -> active# X, active# plus(X1, X2) -> active# X2) (active# U41 X -> active# X, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U41 X -> active# X, active# plus(X1, X2) -> plus#(active X1, X2)) (active# U23 X -> active# X, active# U12(X1, X2, X3) -> U12#(active X1, X2, X3)) (active# U23 X -> active# X, active# U12(X1, X2, X3) -> active# X1) (active# U23 X -> active# X, active# U12(tt(), V1, V2) -> isNatKind# V2) (active# U23 X -> active# X, active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2)) (active# U23 X -> active# X, active# isNatKind s V1 -> isNatKind# V1) (active# U23 X -> active# X, active# isNatKind s V1 -> U41# isNatKind V1) (active# U23 X -> active# X, active# isNatKind plus(V1, V2) -> isNatKind# V1) (active# U23 X -> active# X, active# isNatKind plus(V1, V2) -> U31#(isNatKind V1, V2)) (active# U23 X -> active# X, active# U11(X1, X2, X3) -> active# X1) (active# U23 X -> active# X, active# U11(X1, X2, X3) -> U11#(active X1, X2, X3)) (active# U23 X -> active# X, active# U11(tt(), V1, V2) -> U12#(isNatKind V1, V1, V2)) (active# U23 X -> active# X, active# U11(tt(), V1, V2) -> isNatKind# V1) (active# U23 X -> active# X, active# U13(X1, X2, X3) -> active# X1) (active# U23 X -> active# X, active# U13(X1, X2, X3) -> U13#(active X1, X2, X3)) (active# U23 X -> active# X, active# U13(tt(), V1, V2) -> isNatKind# V2) (active# U23 X -> active# X, active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2)) (active# U23 X -> active# X, active# U14(X1, X2, X3) -> active# X1) (active# U23 X -> active# X, active# U14(X1, X2, X3) -> U14#(active X1, X2, X3)) (active# U23 X -> active# X, active# U14(tt(), V1, V2) -> U15#(isNat V1, V2)) (active# U23 X -> active# X, active# U14(tt(), V1, V2) -> isNat# V1) (active# U23 X -> active# X, active# U15(X1, X2) -> active# X1) (active# U23 X -> active# X, active# U15(X1, X2) -> U15#(active X1, X2)) (active# U23 X -> active# X, active# U15(tt(), V2) -> isNat# V2) (active# U23 X -> active# X, active# U15(tt(), V2) -> U16# isNat V2) (active# U23 X -> active# X, active# isNat s V1 -> isNatKind# V1) (active# U23 X -> active# X, active# isNat s V1 -> U21#(isNatKind V1, V1)) (active# U23 X -> active# X, active# isNat plus(V1, V2) -> isNatKind# V1) (active# U23 X -> active# X, active# isNat plus(V1, V2) -> U11#(isNatKind V1, V1, V2)) (active# U23 X -> active# X, active# U16 X -> active# X) (active# U23 X -> active# X, active# U16 X -> U16# active X) (active# U23 X -> active# X, active# U22(X1, X2) -> active# X1) (active# U23 X -> active# X, active# U22(X1, X2) -> U22#(active X1, X2)) (active# U23 X -> active# X, active# U22(tt(), V1) -> isNat# V1) (active# U23 X -> active# X, active# U22(tt(), V1) -> U23# isNat V1) (active# U23 X -> active# X, active# U21(X1, X2) -> active# X1) (active# U23 X -> active# X, active# U21(X1, X2) -> U21#(active X1, X2)) (active# U23 X -> active# X, active# U21(tt(), V1) -> isNatKind# V1) (active# U23 X -> active# X, active# U21(tt(), V1) -> U22#(isNatKind V1, V1)) (active# U23 X -> active# X, active# U23 X -> active# X) (active# U23 X -> active# X, active# U23 X -> U23# active X) (active# U23 X -> active# X, active# U32 X -> active# X) (active# U23 X -> active# X, active# U32 X -> U32# active X) (active# U23 X -> active# X, active# U31(X1, X2) -> active# X1) (active# U23 X -> active# X, active# U31(X1, X2) -> U31#(active X1, X2)) (active# U23 X -> active# X, active# U31(tt(), V2) -> isNatKind# V2) (active# U23 X -> active# X, active# U31(tt(), V2) -> U32# isNatKind V2) (active# U23 X -> active# X, active# U41 X -> active# X) (active# U23 X -> active# X, active# U41 X -> U41# active X) (active# U23 X -> active# X, active# U52(X1, X2) -> active# X1) (active# U23 X -> active# X, active# U52(X1, X2) -> U52#(active X1, X2)) (active# U23 X -> active# X, active# U51(X1, X2) -> active# X1) (active# U23 X -> active# X, active# U51(X1, X2) -> U51#(active X1, X2)) (active# U23 X -> active# X, active# U51(tt(), N) -> isNatKind# N) (active# U23 X -> active# X, active# U51(tt(), N) -> U52#(isNatKind N, N)) (active# U23 X -> active# X, active# U62(X1, X2, X3) -> active# X1) (active# U23 X -> active# X, active# U62(X1, X2, X3) -> U62#(active X1, X2, X3)) (active# U23 X -> active# X, active# U62(tt(), M, N) -> isNat# N) (active# U23 X -> active# X, active# U62(tt(), M, N) -> U63#(isNat N, M, N)) (active# U23 X -> active# X, active# U61(X1, X2, X3) -> active# X1) (active# U23 X -> active# X, active# U61(X1, X2, X3) -> U61#(active X1, X2, X3)) (active# U23 X -> active# X, active# U61(tt(), M, N) -> isNatKind# M) (active# U23 X -> active# X, active# U61(tt(), M, N) -> U62#(isNatKind M, M, N)) (active# U23 X -> active# X, active# U63(X1, X2, X3) -> active# X1) (active# U23 X -> active# X, active# U63(X1, X2, X3) -> U63#(active X1, X2, X3)) (active# U23 X -> active# X, active# U63(tt(), M, N) -> isNatKind# N) (active# U23 X -> active# X, active# U63(tt(), M, N) -> U64#(isNatKind N, M, N)) (active# U23 X -> active# X, active# U64(X1, X2, X3) -> active# X1) (active# U23 X -> active# X, active# U64(X1, X2, X3) -> U64#(active X1, X2, X3)) (active# U23 X -> active# X, active# U64(tt(), M, N) -> s# plus(N, M)) (active# U23 X -> active# X, active# U64(tt(), M, N) -> plus#(N, M)) (active# U23 X -> active# X, active# s X -> active# X) (active# U23 X -> active# X, active# s X -> s# active X) (active# U23 X -> active# X, active# plus(N, s M) -> isNat# M) (active# U23 X -> active# X, active# plus(N, s M) -> U61#(isNat M, M, N)) (active# U23 X -> active# X, active# plus(N, 0()) -> isNat# N) (active# U23 X -> active# X, active# plus(N, 0()) -> U51#(isNat N, N)) (active# U23 X -> active# X, active# plus(X1, X2) -> active# X1) (active# U23 X -> active# X, active# plus(X1, X2) -> active# X2) (active# U23 X -> active# X, active# plus(X1, X2) -> plus#(X1, active X2)) (active# U23 X -> active# X, active# plus(X1, X2) -> plus#(active X1, X2)) (isNatKind# ok X -> isNatKind# X, isNatKind# ok X -> isNatKind# X) (active# plus(N, 0()) -> U51#(isNat N, N), U51#(mark X1, X2) -> U51#(X1, X2)) (active# plus(N, 0()) -> U51#(isNat N, N), U51#(ok X1, ok X2) -> U51#(X1, X2)) (active# U21(tt(), V1) -> isNatKind# V1, isNatKind# ok X -> isNatKind# X) (active# isNat plus(V1, V2) -> isNatKind# V1, isNatKind# ok X -> isNatKind# X) (active# U14(tt(), V1, V2) -> isNat# V1, isNat# ok X -> isNat# X) (active# isNatKind plus(V1, V2) -> isNatKind# V1, isNatKind# ok X -> isNatKind# X) (active# U14(tt(), V1, V2) -> U15#(isNat V1, V2), U15#(mark X1, X2) -> U15#(X1, X2)) (active# U14(tt(), V1, V2) -> U15#(isNat V1, V2), U15#(ok X1, ok X2) -> U15#(X1, X2)) (active# U64(tt(), M, N) -> s# plus(N, M), s# mark X -> s# X) (active# U64(tt(), M, N) -> s# plus(N, M), s# ok X -> s# X) (active# U21(tt(), V1) -> U22#(isNatKind V1, V1), U22#(mark X1, X2) -> U22#(X1, X2)) (active# U21(tt(), V1) -> U22#(isNatKind V1, V1), U22#(ok X1, ok X2) -> U22#(X1, X2)) (active# U15(tt(), V2) -> isNat# V2, isNat# ok X -> isNat# X) (active# U12(tt(), V1, V2) -> isNatKind# V2, isNatKind# ok X -> isNatKind# X) (active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2), U14#(mark X1, X2, X3) -> U14#(X1, X2, X3)) (active# U13(tt(), V1, V2) -> U14#(isNatKind V2, V1, V2), U14#(ok X1, ok X2, ok X3) -> U14#(X1, X2, X3)) (active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2), U13#(mark X1, X2, X3) -> U13#(X1, X2, X3)) (active# U12(tt(), V1, V2) -> U13#(isNatKind V2, V1, V2), U13#(ok X1, ok X2, ok X3) -> U13#(X1, X2, X3)) (active# U63(tt(), M, N) -> isNatKind# N, isNatKind# ok X -> isNatKind# X) (active# U51(tt(), N) -> isNatKind# N, isNatKind# ok X -> isNatKind# X) (active# U63(tt(), M, N) -> U64#(isNatKind N, M, N), U64#(mark X1, X2, X3) -> U64#(X1, X2, X3)) (active# U63(tt(), M, N) -> U64#(isNatKind N, M, N), U64#(ok X1, ok X2, ok X3) -> U64#(X1, X2, X3)) (active# U62(tt(), M, N) -> U63#(isNat N, M, N), U63#(mark X1, X2, X3) -> U63#(X1, X2, X3)) (active# U62(tt(), M, N) -> U63#(isNat N, M, N), U63#(ok X1, ok X2, ok X3) -> U63#(X1, X2, X3)) } STATUS: arrows: 0.865156 SCCS (25): Scc: {top# mark X -> top# proper X, top# ok X -> top# active X} Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3, proper# s X -> proper# X, proper# plus(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X2} Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1, active# s X -> active# X, active# plus(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X2} Scc: {U32# mark X -> U32# X, U32# ok X -> U32# X} Scc: {U23# mark X -> U23# X, U23# ok X -> U23# X} Scc: {U16# mark X -> U16# X, U16# ok X -> U16# X} Scc: {U41# mark X -> U41# X, U41# ok X -> U41# X} Scc: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2), plus#(ok X1, ok X2) -> plus#(X1, X2)} Scc: { U51#(mark X1, X2) -> U51#(X1, X2), U51#(ok X1, ok X2) -> U51#(X1, X2)} Scc: { U52#(mark X1, X2) -> U52#(X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2)} Scc: { U15#(mark X1, X2) -> U15#(X1, X2), U15#(ok X1, ok X2) -> U15#(X1, X2)} Scc: { U31#(mark X1, X2) -> U31#(X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2)} Scc: {s# mark X -> s# X, s# ok X -> s# X} Scc: { U22#(mark X1, X2) -> U22#(X1, X2), U22#(ok X1, ok X2) -> U22#(X1, X2)} Scc: { U21#(mark X1, X2) -> U21#(X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2)} Scc: { U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(ok X1, ok X2, ok X3) -> U11#(X1, X2, X3)} Scc: { U14#(mark X1, X2, X3) -> U14#(X1, X2, X3), U14#(ok X1, ok X2, ok X3) -> U14#(X1, X2, X3)} Scc: { U12#(mark X1, X2, X3) -> U12#(X1, X2, X3), U12#(ok X1, ok X2, ok X3) -> U12#(X1, X2, X3)} Scc: { U13#(mark X1, X2, X3) -> U13#(X1, X2, X3), U13#(ok X1, ok X2, ok X3) -> U13#(X1, X2, X3)} Scc: {isNat# ok X -> isNat# X} Scc: {isNatKind# ok X -> isNatKind# X} Scc: { U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)} Scc: { U64#(mark X1, X2, X3) -> U64#(X1, X2, X3), U64#(ok X1, ok X2, ok X3) -> U64#(X1, X2, X3)} Scc: { U62#(mark X1, X2, X3) -> U62#(X1, X2, X3), U62#(ok X1, ok X2, ok X3) -> U62#(X1, X2, X3)} Scc: { U63#(mark X1, X2, X3) -> U63#(X1, X2, X3), U63#(ok X1, ok X2, ok X3) -> U63#(X1, X2, X3)} SCC (2): Strict: {top# mark X -> top# proper X, top# ok X -> top# active X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} Fail SCC (45): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3, proper# s X -> proper# X, proper# plus(X1, X2) -> proper# X1, proper# plus(X1, X2) -> proper# X2} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1 + x2, [U61](x0, x1, x2) = x0 + x1 + x2, [U63](x0, x1, x2) = x0 + x1 + x2, [U64](x0, x1, x2) = x0 + x1 + x2, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = x0 + x1 + 1, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = x0, [proper](x0) = x0 + 1, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# plus(X1, X2) -> proper# X2 1 + 1X1 + 1X2 >= 0 + 1X2 proper# plus(X1, X2) -> proper# X1 1 + 1X1 + 1X2 >= 0 + 1X1 proper# s X -> proper# X 0 + 1X >= 0 + 1X proper# U64(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U64(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U64(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U63(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U63(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U63(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U61(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U61(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U61(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U62(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U62(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U62(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U51(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U51(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U52(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U52(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U41 X -> proper# X 0 + 1X >= 0 + 1X proper# U31(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U31(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U32 X -> proper# X 0 + 1X >= 0 + 1X proper# U23 X -> proper# X 0 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 proper s X -> s proper X 1 + 1X >= 1 + 1X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U41 X -> U41 proper X 1 + 1X >= 1 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U32 X -> U32 proper X 1 + 1X >= 1 + 1X proper U23 X -> U23 proper X 1 + 1X >= 1 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 1 + 1X >= 1 + 1X proper isNat X -> isNat proper X 1 + 1X >= 1 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper tt() -> ok tt() 1 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper isNatKind X -> isNatKind proper X 1 + 1X >= 1 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 0 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 0 + 0X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 1X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3, proper# s X -> proper# X} SCC (43): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3, proper# s X -> proper# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1 + x2, [U61](x0, x1, x2) = x0 + x1 + x2, [U63](x0, x1, x2) = x0 + x1 + x2, [U64](x0, x1, x2) = x0 + x1 + x2, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 0, [mark](x0) = x0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = x0 + 1, [proper](x0) = x0 + 1, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# s X -> proper# X 1 + 1X >= 0 + 1X proper# U64(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U64(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U64(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U63(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U63(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U63(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U61(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U61(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U61(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U62(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U62(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U62(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U51(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U51(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U52(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U52(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U41 X -> proper# X 0 + 1X >= 0 + 1X proper# U31(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U31(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U32 X -> proper# X 0 + 1X >= 0 + 1X proper# U23 X -> proper# X 0 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 2 + 1X >= 2 + 1X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U41 X -> U41 proper X 1 + 1X >= 1 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U32 X -> U32 proper X 1 + 1X >= 1 + 1X proper U23 X -> U23 proper X 1 + 1X >= 1 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 1 + 1X >= 1 + 1X proper isNat X -> isNat proper X 1 + 1X >= 1 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper tt() -> ok tt() 1 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper isNatKind X -> isNatKind proper X 1 + 1X >= 1 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 0 + 0X s mark X -> mark s X 1 + 1X >= 1 + 1X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 0 + 1X >= 0 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 0 + 1X >= 0 + 1X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 0 + 1X >= 0 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U16 ok X -> ok U16 X 0 + 0X >= 0 + 0X U16 mark X -> mark U16 X 0 + 1X >= 0 + 1X isNat ok X -> ok isNat X 0 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 2N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 1N + 2M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 2N + 1M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 1N + 2M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 2N + 1M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 2N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 2V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 1V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 2V1 + 1V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 2V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 1V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 1V1 + 1V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 1V1 + 2V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 2V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 1V1 + 1V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 1V1 + 2V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3} SCC (42): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3, proper# U64(X1, X2, X3) -> proper# X1, proper# U64(X1, X2, X3) -> proper# X2, proper# U64(X1, X2, X3) -> proper# X3} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1 + x2, [U61](x0, x1, x2) = x0 + x1 + x2, [U63](x0, x1, x2) = x0 + x1 + x2, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U64(X1, X2, X3) -> proper# X3 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U64(X1, X2, X3) -> proper# X2 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U64(X1, X2, X3) -> proper# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U63(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U63(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U63(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U61(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U61(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U61(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U62(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U62(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U62(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U51(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U51(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U52(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U52(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U41 X -> proper# X 0 + 1X >= 0 + 1X proper# U31(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U31(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U32 X -> proper# X 0 + 1X >= 0 + 1X proper# U23 X -> proper# X 0 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 0 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 2 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 1 + 1X >= 1 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 1 + 1X >= 1 + 1X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 1 + 1X >= 1 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U16 ok X -> ok U16 X 0 + 0X >= 0 + 0X U16 mark X -> mark U16 X 1 + 1X >= 1 + 1X isNat ok X -> ok isNat X 0 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 1 + 2N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 1 + 1N + 2M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 2 + 2N + 1M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 1 + 1N + 2M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 1 + 2N + 1M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 1 + 2N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 1 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 1 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 1 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 1 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 1 + 2V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 1 + 1V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 1 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 2V1 + 1V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 1 + 2V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 1 + 1V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 1 + 1V1 + 1V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 1 + 1V1 + 2V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 2V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 1 + 1V1 + 1V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 1 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 1 + 1V1 + 2V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3} SCC (39): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3, proper# U63(X1, X2, X3) -> proper# X1, proper# U63(X1, X2, X3) -> proper# X2, proper# U63(X1, X2, X3) -> proper# X3} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1 + x2, [U61](x0, x1, x2) = x0 + x1 + x2, [U63](x0, x1, x2) = x0 + x1 + x2 + 1, [U64](x0, x1, x2) = x0 + x1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 0, [mark](x0) = 1, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = x0, [proper](x0) = 0, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U63(X1, X2, X3) -> proper# X3 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U63(X1, X2, X3) -> proper# X2 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U63(X1, X2, X3) -> proper# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U61(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U61(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U61(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U62(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U62(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U62(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U51(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U51(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U52(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U52(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U41 X -> proper# X 0 + 1X >= 0 + 1X proper# U31(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U31(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U32 X -> proper# X 0 + 1X >= 0 + 1X proper# U23 X -> proper# X 0 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 0 + 0X s mark X -> mark s X 1 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 1 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 1 + 0X >= 1 + 0X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 1 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 0 + 0X U16 mark X -> mark U16 X 1 + 0X >= 1 + 0X isNat ok X -> ok isNat X 0 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 1 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 1 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 1 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 1 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 1 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 1 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 1 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 1 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 1 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3} SCC (36): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3, proper# U61(X1, X2, X3) -> proper# X1, proper# U61(X1, X2, X3) -> proper# X2, proper# U61(X1, X2, X3) -> proper# X3} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1 + x2, [U61](x0, x1, x2) = x0 + x1 + x2 + 1, [U63](x0, x1, x2) = x0, [U64](x0, x1, x2) = 0, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = x0 + 1, [proper](x0) = x0 + 1, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U61(X1, X2, X3) -> proper# X3 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U61(X1, X2, X3) -> proper# X2 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U61(X1, X2, X3) -> proper# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U62(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U62(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U62(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U51(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U51(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U52(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U52(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U41 X -> proper# X 0 + 1X >= 0 + 1X proper# U31(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U31(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U32 X -> proper# X 0 + 1X >= 0 + 1X proper# U23 X -> proper# X 0 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 2 + 1X >= 2 + 1X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 1X2 + 1X3 >= 4 + 1X1 + 1X2 + 1X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U41 X -> U41 proper X 1 + 1X >= 1 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U32 X -> U32 proper X 1 + 1X >= 1 + 1X proper U23 X -> U23 proper X 1 + 1X >= 1 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 1 + 1X >= 1 + 1X proper isNat X -> isNat proper X 1 + 1X >= 1 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper tt() -> ok tt() 1 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper isNatKind X -> isNatKind proper X 1 + 1X >= 1 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 0 + 0X s mark X -> mark s X 2 + 1X >= 2 + 1X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 1 + 1X >= 1 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 1 + 1X >= 1 + 1X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 1 + 1X >= 1 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U16 ok X -> ok U16 X 0 + 0X >= 0 + 0X U16 mark X -> mark U16 X 1 + 1X >= 1 + 1X isNat ok X -> ok isNat X 0 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 1 + 2N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 2 + 1N + 2M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 1 + 1N + 2M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 1 + 1N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 1 + 2N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 1 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 1 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 1 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 1 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 1 + 2V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 1 + 1V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 1 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 2V1 + 1V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 1 + 2V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 1 + 1V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 1 + 1V1 + 1V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 1 + 1V1 + 2V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 2V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 1 + 1V1 + 1V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 1 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 1 + 1V1 + 2V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3} SCC (33): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X1, proper# U62(X1, X2, X3) -> proper# X2, proper# U62(X1, X2, X3) -> proper# X3} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1 + x2 + 1, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = 0, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 0, [mark](x0) = 1, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = x0 + 1, [proper](x0) = 0, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U62(X1, X2, X3) -> proper# X3 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U62(X1, X2, X3) -> proper# X2 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U62(X1, X2, X3) -> proper# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U51(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U51(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U52(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U52(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U41 X -> proper# X 0 + 1X >= 0 + 1X proper# U31(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U31(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U32 X -> proper# X 0 + 1X >= 0 + 1X proper# U23 X -> proper# X 0 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 0 + 0X s mark X -> mark s X 2 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 1 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 1 + 0X >= 1 + 0X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 1 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 0 + 0X U16 mark X -> mark U16 X 1 + 0X >= 1 + 0X isNat ok X -> ok isNat X 0 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 1 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 1 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 1 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 1 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 1 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 1 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 1 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 1 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 1 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2} SCC (30): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2, proper# U51(X1, X2) -> proper# X1, proper# U51(X1, X2) -> proper# X2} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1 + 1, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = 0, [proper](x0) = 0, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U51(X1, X2) -> proper# X2 1 + 1X1 + 1X2 >= 0 + 1X2 proper# U51(X1, X2) -> proper# X1 1 + 1X1 + 1X2 >= 0 + 1X1 proper# U52(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U52(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U41 X -> proper# X 0 + 1X >= 0 + 1X proper# U31(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U31(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U32 X -> proper# X 0 + 1X >= 0 + 1X proper# U23 X -> proper# X 0 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 0 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 0 + 0X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2} SCC (28): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X, proper# U52(X1, X2) -> proper# X1, proper# U52(X1, X2) -> proper# X2} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1 + 1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = 0, [proper](x0) = 0, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U52(X1, X2) -> proper# X2 1 + 1X1 + 1X2 >= 0 + 1X2 proper# U52(X1, X2) -> proper# X1 1 + 1X1 + 1X2 >= 0 + 1X1 proper# U41 X -> proper# X 0 + 1X >= 0 + 1X proper# U31(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U31(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U32 X -> proper# X 0 + 1X >= 0 + 1X proper# U23 X -> proper# X 0 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 0 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 0 + 0X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X} SCC (26): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2, proper# U41 X -> proper# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = x0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U41 X -> proper# X 1 + 1X >= 0 + 1X proper# U31(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U31(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U32 X -> proper# X 0 + 1X >= 0 + 1X proper# U23 X -> proper# X 0 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U32 X -> U32 proper X 1 + 1X >= 1 + 1X proper U23 X -> U23 proper X 1 + 1X >= 1 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 1 + 1X >= 1 + 1X proper isNat X -> isNat proper X 1 + 1X >= 1 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper tt() -> ok tt() 1 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper isNatKind X -> isNatKind proper X 1 + 1X >= 1 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 0 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 1 + 0X >= 0 + 0X U41 mark X -> mark U41 X 1 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 0 + 0X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 1N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 1 >= 0 active U41 X -> U41 active X 1 + 1X >= 1 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 1V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 1X >= 0 + 1X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 1X >= 0 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 1V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 1V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 1X >= 0 + 1X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 1V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 1V1 + 1V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 1V1 + 1V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 1V1 + 1V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 1V1 + 1V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2} SCC (25): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X, proper# U31(X1, X2) -> proper# X1, proper# U31(X1, X2) -> proper# X2} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1 + 1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = 0, [s](x0) = 0, [proper](x0) = 0, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U31(X1, X2) -> proper# X2 1 + 1X1 + 1X2 >= 0 + 1X2 proper# U31(X1, X2) -> proper# X1 1 + 1X1 + 1X2 >= 0 + 1X1 proper# U32 X -> proper# X 0 + 1X >= 0 + 1X proper# U23 X -> proper# X 0 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 0 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 0 + 0X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X} SCC (23): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X, proper# U32 X -> proper# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 0, [proper](x0) = 0, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U32 X -> proper# X 1 + 1X >= 0 + 1X proper# U23 X -> proper# X 0 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 1 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 0 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 0X >= 0 + 0X U32 mark X -> mark U32 X 1 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 0 + 0X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 1 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X} SCC (22): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2, proper# U23 X -> proper# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 0, [proper](x0) = 0, [ok](x0) = x0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U23 X -> proper# X 1 + 1X >= 0 + 1X proper# U21(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 1 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 0 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 1 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 0 + 1X >= 0 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 1X >= 0 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 1X >= 0 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2} SCC (21): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2, proper# U21(X1, X2) -> proper# X1, proper# U21(X1, X2) -> proper# X2} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1 + x2, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1 + 1, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = 0, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U21(X1, X2) -> proper# X2 1 + 1X1 + 1X2 >= 0 + 1X2 proper# U21(X1, X2) -> proper# X1 1 + 1X1 + 1X2 >= 0 + 1X1 proper# U22(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 0 + 0X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 1 + 1X >= 1 + 1X proper isNat X -> isNat proper X 1 + 1X >= 1 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper tt() -> ok tt() 1 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper isNatKind X -> isNatKind proper X 1 + 1X >= 1 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 0 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 0 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 0 + 1X >= 0 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 1X >= 0 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 1X >= 0 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2} SCC (19): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X, proper# U22(X1, X2) -> proper# X1, proper# U22(X1, X2) -> proper# X2} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1 + 1, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0, [U23](x0) = 0, [U32](x0) = 1, [U41](x0) = 0, [s](x0) = 0, [proper](x0) = x0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U22(X1, X2) -> proper# X2 1 + 1X1 + 1X2 >= 0 + 1X2 proper# U22(X1, X2) -> proper# X1 1 + 1X1 + 1X2 >= 0 + 1X1 proper# U16 X -> proper# X 0 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 1 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 proper U16 X -> U16 proper X 0 + 1X >= 0 + 1X proper isNat X -> isNat proper X 0 + 1X >= 0 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 proper isNatKind X -> isNatKind proper X 0 + 1X >= 0 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U51(mark X1, X2) -> mark U51(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 0X >= 2 + 0X U32 mark X -> mark U32 X 1 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 1 + 1X >= 1 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 1 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 1 + 1X >= 1 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X} SCC (17): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X, proper# U16 X -> proper# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0, [U16](x0) = x0 + 1, [U23](x0) = 0, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 0, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U16 X -> proper# X 1 + 1X >= 0 + 1X proper# isNat X -> proper# X 0 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 1 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 0X >= 0 + 0X isNat ok X -> ok isNat X 1 + 1X >= 1 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 1 + 1X >= 1 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X} SCC (16): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2, proper# isNat X -> proper# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + x1 + x2 + 1, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = 0, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = x0 + 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 0, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# isNat X -> proper# X 1 + 1X >= 0 + 1X proper# U15(X1, X2) -> proper# X2 0 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 0 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 1 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 1 + 0X proper isNat X -> isNat proper X 0 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 0X >= 0 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 1 + 1X >= 1 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2} SCC (15): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3, proper# U15(X1, X2) -> proper# X1, proper# U15(X1, X2) -> proper# X2} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + x2, [U15](x0, x1) = x0 + x1 + 1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = 0, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U15(X1, X2) -> proper# X2 1 + 1X1 + 1X2 >= 0 + 1X2 proper# U15(X1, X2) -> proper# X1 1 + 1X1 + 1X2 >= 0 + 1X1 proper# U14(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 0 + 0X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper isNatKind X -> isNatKind proper X 1 + 1X >= 1 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 0X >= 0 + 0X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 1 + 1X >= 1 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3} SCC (13): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3, proper# U14(X1, X2, X3) -> proper# X1, proper# U14(X1, X2, X3) -> proper# X2, proper# U14(X1, X2, X3) -> proper# X3} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2 + 1, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + x2, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = 0, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 0, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U14(X1, X2, X3) -> proper# X3 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U14(X1, X2, X3) -> proper# X2 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U14(X1, X2, X3) -> proper# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U13(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 1 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 1 + 0X proper isNat X -> isNat proper X 0 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 0X >= 0 + 0X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 1 + 1X >= 1 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3} SCC (10): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3, proper# U13(X1, X2, X3) -> proper# X1, proper# U13(X1, X2, X3) -> proper# X2, proper# U13(X1, X2, X3) -> proper# X3} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2, [U13](x0, x1, x2) = x0 + x1 + x2 + 1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = 0, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U13(X1, X2, X3) -> proper# X3 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U13(X1, X2, X3) -> proper# X2 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U13(X1, X2, X3) -> proper# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# U11(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 1X1 + 1X2 + 1X3 >= 4 + 1X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 0 + 0X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 2 + 1X1 + 1X2 + 1X3 >= 4 + 1X1 + 1X2 + 1X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper isNatKind X -> isNatKind proper X 1 + 1X >= 1 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 0X >= 0 + 0X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 1 + 1X >= 1 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 3 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3} SCC (7): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X, proper# U11(X1, X2, X3) -> proper# X1, proper# U11(X1, X2, X3) -> proper# X2, proper# U11(X1, X2, X3) -> proper# X3} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = x0 + x1 + x2 + 1, [U13](x0, x1, x2) = x0 + x1 + x2, [U14](x0, x1, x2) = x0 + x1 + x2, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = 0, [plus](x0, x1) = 0, [mark](x0) = 0, [isNatKind](x0) = x0, [active](x0) = 0, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0, [top](x0) = 0, [tt] = 0, [0] = 0, [proper#](x0) = x0 Strict: proper# U11(X1, X2, X3) -> proper# X3 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U11(X1, X2, X3) -> proper# X2 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U11(X1, X2, X3) -> proper# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 proper# isNatKind X -> proper# X 0 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 0X1 + 1X2 + 0X3 >= 2 + 0X1 + 1X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 0 + 0X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 proper tt() -> ok tt() 1 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 1X2 + 1X3 >= 4 + 1X1 + 1X2 + 1X3 proper isNatKind X -> isNatKind proper X 1 + 1X >= 1 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 0 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 1X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 0 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 1 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 1 + 0X >= 0 + 0X isNat ok X -> ok isNat X 1 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 1X >= 0 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 + 1X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X} SCC (4): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3, proper# isNatKind X -> proper# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2, [U11](x0, x1, x2) = 0, [U13](x0, x1, x2) = x0 + x1 + 1, [U14](x0, x1, x2) = x0 + x1 + 1, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = 0, [U21](x0, x1) = x0 + x1 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = x0 + 1, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = 0, [top](x0) = 0, [tt] = 0, [0] = 1, [proper#](x0) = x0 Strict: proper# isNatKind X -> proper# X 1 + 1X >= 0 + 1X proper# U12(X1, X2, X3) -> proper# X3 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 0 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 2 >= 0 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 0 + 0X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper tt() -> ok tt() 1 >= 0 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 3 + 1X1 + 1X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 0 + 0X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 1 + 0X >= 0 + 0X U41 mark X -> mark U41 X 1 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 0 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 1 + 0X >= 0 + 0X U23 mark X -> mark U23 X 1 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 0X >= 0 + 0X U16 mark X -> mark U16 X 1 + 0X >= 0 + 0X isNat ok X -> ok isNat X 1 + 0X >= 0 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 1 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 1 + 0X >= 0 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3} SCC (3): Strict: {proper# U12(X1, X2, X3) -> proper# X1, proper# U12(X1, X2, X3) -> proper# X2, proper# U12(X1, X2, X3) -> proper# X3} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1 + x2 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0 + x1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [proper#](x0) = x0 Strict: proper# U12(X1, X2, X3) -> proper# X3 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X3 proper# U12(X1, X2, X3) -> proper# X2 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X2 proper# U12(X1, X2, X3) -> proper# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 1 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 0X >= 2 + 0X U32 mark X -> mark U32 X 1 + 0X >= 2 + 0X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 1N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 1N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 2 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 0X >= 1 + 0X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 1V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 1V1 + 1V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 Qed SCC (21): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1, active# s X -> active# X, active# plus(X1, X2) -> active# X1, active# plus(X1, X2) -> active# X2} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0, [plus](x0, x1) = x0 + x1 + 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = x0, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# plus(X1, X2) -> active# X2 1 + 1X1 + 1X2 >= 0 + 1X2 active# plus(X1, X2) -> active# X1 1 + 1X1 + 1X2 >= 0 + 1X1 active# s X -> active# X 0 + 1X >= 0 + 1X active# U64(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U63(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U61(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U62(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U51(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U52(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U41 X -> active# X 0 + 1X >= 0 + 1X active# U31(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U32 X -> active# X 0 + 1X >= 0 + 1X active# U23 X -> active# X 0 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 1 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 1X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 1X >= 1 + 1X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 1 + 1X >= 1 + 1X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 1X >= 1 + 1X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 1X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1, active# s X -> active# X} SCC (19): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1, active# s X -> active# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0, [U13](x0, x1, x2) = x0, [U14](x0, x1, x2) = x0, [U62](x0, x1, x2) = x0, [U61](x0, x1, x2) = x0, [U63](x0, x1, x2) = x0, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0, [U21](x0, x1) = x0, [U31](x0, x1) = x0, [U52](x0, x1) = x0, [U51](x0, x1) = x0, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = x0 + 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# s X -> active# X 1 + 1X >= 0 + 1X active# U64(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U63(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U61(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U62(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U51(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U52(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U41 X -> active# X 0 + 1X >= 0 + 1X active# U31(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U32 X -> active# X 0 + 1X >= 0 + 1X active# U23 X -> active# X 0 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 1X >= 2 + 1X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 1X >= 1 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 proper U32 X -> U32 proper X 1 + 1X >= 1 + 1X proper U23 X -> U23 proper X 1 + 1X >= 1 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 1X >= 1 + 1X proper isNat X -> isNat proper X 1 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 2 + 1X >= 2 + 1X s mark X -> mark s X 2 + 1X >= 2 + 1X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U41 ok X -> ok U41 X 1 + 1X >= 1 + 1X U41 mark X -> mark U41 X 1 + 1X >= 1 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U32 ok X -> ok U32 X 1 + 1X >= 1 + 1X U32 mark X -> mark U32 X 1 + 1X >= 1 + 1X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 1 + 1X >= 1 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 1 + 1X >= 1 + 1X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 1 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 3 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 2 + 1N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 2 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 2 + 1N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 1 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 2 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 1 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 1 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 2 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 1 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 2 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 1V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 2 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 1 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1} SCC (18): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1, active# U64(X1, X2, X3) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0, [U13](x0, x1, x2) = x0, [U14](x0, x1, x2) = x0, [U62](x0, x1, x2) = x0, [U61](x0, x1, x2) = x0, [U63](x0, x1, x2) = x0, [U64](x0, x1, x2) = x0 + 1, [U15](x0, x1) = x0, [U22](x0, x1) = x0, [U21](x0, x1) = x0, [U31](x0, x1) = x0, [U52](x0, x1) = x0, [U51](x0, x1) = x0, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = x0 + 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U64(X1, X2, X3) -> active# X1 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U63(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U61(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U62(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U51(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U52(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U41 X -> active# X 0 + 1X >= 0 + 1X active# U31(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U32 X -> active# X 0 + 1X >= 0 + 1X active# U23 X -> active# X 0 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 1 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 2 + 1X >= 2 + 1X s mark X -> mark s X 2 + 1X >= 2 + 1X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U41 ok X -> ok U41 X 1 + 1X >= 1 + 1X U41 mark X -> mark U41 X 1 + 1X >= 1 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U32 ok X -> ok U32 X 1 + 1X >= 1 + 1X U32 mark X -> mark U32 X 1 + 1X >= 1 + 1X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 1 + 1X >= 1 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 1 + 1X >= 1 + 1X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 1 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 3 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 3 + 1N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 2 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 2 + 1N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 1 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 2 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 1 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 1 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 2 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 1 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 2 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 2 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 1 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1} SCC (17): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1, active# U63(X1, X2, X3) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = x0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 1, [mark](x0) = 1, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = x0 + 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U63(X1, X2, X3) -> active# X1 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U61(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U62(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U51(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U52(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U41 X -> active# X 0 + 1X >= 0 + 1X active# U31(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U32 X -> active# X 0 + 1X >= 0 + 1X active# U23 X -> active# X 0 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 1X >= 2 + 1X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 1X1 + 1X2 + 1X3 >= 4 + 1X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U41 X -> U41 proper X 1 + 1X >= 1 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U32 X -> U32 proper X 1 + 1X >= 1 + 1X proper U23 X -> U23 proper X 1 + 1X >= 1 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 1 + 1X >= 1 + 1X proper isNat X -> isNat proper X 1 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 2 + 1X >= 2 + 1X s mark X -> mark s X 2 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 2 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U51(mark X1, X2) -> mark U51(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U41 ok X -> ok U41 X 1 + 1X >= 1 + 1X U41 mark X -> mark U41 X 1 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 1X >= 1 + 1X U32 mark X -> mark U32 X 1 + 0X >= 1 + 0X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 1 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 1 + 0X >= 1 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 0X1 + 1X2 >= 1 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 1 + 0X1 + 1X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 1 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 1 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 1 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 1 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 1 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 1 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 1 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 1 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 1 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 1 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1} SCC (16): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1, active# U61(X1, X2, X3) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + x1, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U61(X1, X2, X3) -> active# X1 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U62(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U51(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U52(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U41 X -> active# X 0 + 1X >= 0 + 1X active# U31(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U32 X -> active# X 0 + 1X >= 0 + 1X active# U23 X -> active# X 0 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U41 X -> U41 proper X 1 + 1X >= 1 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U32 X -> U32 proper X 1 + 1X >= 1 + 1X proper U23 X -> U23 proper X 1 + 1X >= 1 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 1 + 1X >= 1 + 1X proper isNat X -> isNat proper X 1 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 1 + 1X >= 1 + 1X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 1X >= 1 + 1X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1} SCC (15): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1, active# U62(X1, X2, X3) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = x0 + x1 + x2 + 1, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U62(X1, X2, X3) -> active# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 active# U51(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U52(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U41 X -> active# X 0 + 1X >= 0 + 1X active# U31(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U32 X -> active# X 0 + 1X >= 0 + 1X active# U23 X -> active# X 0 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 1X1 + 1X2 + 1X3 >= 4 + 1X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 2 + 1X1 + 1X2 + 1X3 >= 4 + 1X1 + 1X2 + 1X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U41 X -> U41 proper X 1 + 1X >= 1 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U32 X -> U32 proper X 1 + 1X >= 1 + 1X proper U23 X -> U23 proper X 1 + 1X >= 1 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 1 + 1X >= 1 + 1X proper isNat X -> isNat proper X 1 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 1 + 1X >= 1 + 1X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 1X >= 1 + 1X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1} SCC (14): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1, active# U51(X1, X2) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = 0, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U51(X1, X2) -> active# X1 1 + 1X1 + 0X2 >= 0 + 1X1 active# U52(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U41 X -> active# X 0 + 1X >= 0 + 1X active# U31(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U32 X -> active# X 0 + 1X >= 0 + 1X active# U23 X -> active# X 0 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 1X1 + 1X2 + 1X3 >= 4 + 1X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U41 X -> U41 proper X 1 + 1X >= 1 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U32 X -> U32 proper X 1 + 1X >= 1 + 1X proper U23 X -> U23 proper X 1 + 1X >= 1 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 1 + 1X >= 1 + 1X proper isNat X -> isNat proper X 1 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 1 + 1X >= 1 + 1X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 1X >= 1 + 1X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1} SCC (13): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X, active# U52(X1, X2) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = 0, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = x0 + x1 + 1, [U51](x0, x1) = x0, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U52(X1, X2) -> active# X1 1 + 1X1 + 1X2 >= 0 + 1X1 active# U41 X -> active# X 0 + 1X >= 0 + 1X active# U31(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U32 X -> active# X 0 + 1X >= 0 + 1X active# U23 X -> active# X 0 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 1 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 0X1 + 0X2 + 1X3 >= 2 + 0X1 + 0X2 + 1X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U52(mark X1, X2) -> mark U52(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 1 + 1X >= 1 + 1X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 1X >= 1 + 1X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X} SCC (12): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1, active# U41 X -> active# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = 0, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0 + 1, [s](x0) = 1, [proper](x0) = x0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U41 X -> active# X 1 + 1X >= 0 + 1X active# U31(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U32 X -> active# X 0 + 1X >= 0 + 1X active# U23 X -> active# X 0 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 1X3 >= 1 + 1X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 1 + 1X >= 1 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 proper U32 X -> U32 proper X 0 + 1X >= 0 + 1X proper U23 X -> U23 proper X 0 + 1X >= 0 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 proper U16 X -> U16 proper X 0 + 1X >= 0 + 1X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 1X1 + 1X2 >= 0 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 + 1X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 1X >= 1 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 1 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 1X >= 1 + 1X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 1 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1} SCC (11): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X, active# U31(X1, X2) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = 0, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0, [U41](x0) = x0 + 1, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U31(X1, X2) -> active# X1 1 + 1X1 + 0X2 >= 0 + 1X1 active# U32 X -> active# X 0 + 1X >= 0 + 1X active# U23 X -> active# X 0 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 1 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 1 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 1 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 1X >= 1 + 1X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 1 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X} SCC (10): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X, active# U32 X -> active# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U32 X -> active# X 1 + 1X >= 0 + 1X active# U23 X -> active# X 0 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 1 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 1 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 1 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 1 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 1 + 0X >= 0 + 0X U23 ok X -> ok U23 X 1 + 1X >= 1 + 1X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 1 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 1 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X} SCC (9): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1, active# U23 X -> active# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1, [U21](x0, x1) = x0 + x1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = x0 + 1, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U23 X -> active# X 1 + 1X >= 0 + 1X active# U21(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 1X1 + 1X2 + 1X3 >= 4 + 1X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 0 + 0X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U16 X -> U16 proper X 1 + 1X >= 1 + 1X proper isNat X -> isNat proper X 1 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 1 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 1 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1} SCC (8): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1, active# U21(X1, X2) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + x1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = x0 + 1, [mark](x0) = 0, [isNatKind](x0) = 0, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = 0, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = x0 + 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U21(X1, X2) -> active# X1 1 + 1X1 + 0X2 >= 0 + 1X1 active# U22(X1, X2) -> active# X1 0 + 1X1 + 0X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 2 + 0X1 + 1X2 >= 2 + 0X1 + 1X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 2 + 1X >= 2 + 1X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 2 + 0X1 + 0X2 + 1X3 >= 2 + 0X1 + 0X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1} SCC (7): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X, active# U22(X1, X2) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = x0 + x1 + 1, [U21](x0, x1) = x0 + x1 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0, [U23](x0) = 0, [U32](x0) = 0, [U41](x0) = x0 + 1, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U22(X1, X2) -> active# X1 1 + 1X1 + 1X2 >= 0 + 1X1 active# U16 X -> active# X 0 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 1 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 0 + 0X proper isNat X -> isNat proper X 0 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 1 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 1 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U22(mark X1, X2) -> mark U22(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 1 + 1X >= 1 + 1X U16 mark X -> mark U16 X 0 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 1 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 0 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X} SCC (6): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1, active# U16 X -> active# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + x1, [U63](x0, x1, x2) = x0 + x1, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + x1, [U22](x0, x1) = 0, [U21](x0, x1) = x0 + x1 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 0, [U16](x0) = x0 + 1, [U23](x0) = 0, [U32](x0) = 0, [U41](x0) = x0 + 1, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U16 X -> active# X 1 + 1X >= 0 + 1X active# U15(X1, X2) -> active# X1 0 + 1X1 + 1X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 1X1 + 1X2 + 1X3 >= 4 + 1X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 0 + 0X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 1 + 0X >= 0 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 1 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 0X >= 0 + 0X isNat ok X -> ok isNat X 0 + 0X >= 1 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 1X2 >= 1 + 1X1 + 1X2 U15(mark X1, X2) -> mark U15(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 1 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 1X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1} SCC (5): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1, active# U15(X1, X2) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + x2 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = 0, [U21](x0, x1) = x0 + x1 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = x0 + 1, [s](x0) = 1, [proper](x0) = 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U15(X1, X2) -> active# X1 1 + 1X1 + 0X2 >= 0 + 1X1 active# U14(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 4 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 2 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 0 + 0X proper U23 X -> U23 proper X 1 + 0X >= 2 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 3 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 2 + 0X proper isNat X -> isNat proper X 1 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 2 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 1 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 0X >= 0 + 0X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 1 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1} SCC (4): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1, active# U14(X1, X2, X3) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + x1, [U13](x0, x1, x2) = x0 + x1, [U14](x0, x1, x2) = x0 + x1 + x2 + 1, [U62](x0, x1, x2) = x0 + x1, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = 0, [U21](x0, x1) = x0 + x1 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = 0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = x0 + 1, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U14(X1, X2, X3) -> active# X1 1 + 1X1 + 1X2 + 1X3 >= 0 + 1X1 active# U13(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 1X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 0 + 0X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 1X2 >= 3 + 1X1 + 1X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 2 + 1X1 + 1X2 + 1X3 >= 4 + 1X1 + 1X2 + 1X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 1X1 + 1X2 + 0X3 >= 2 + 1X1 + 1X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 0 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 1 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 0X >= 0 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 0X >= 0 + 0X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 4 + 1X1 + 1X2 + 1X3 >= 2 + 1X1 + 1X2 + 1X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 1X2 + 0X3 >= 1 + 1X1 + 1X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 1X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 0 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 0N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 1 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 1X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 0 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 0 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 1X2 + 1X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 1X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1} SCC (3): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1, active# U13(X1, X2, X3) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = 0, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = x0, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = x0 + 1, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U13(X1, X2, X3) -> active# X1 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U11(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 1 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 1 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 1 + 0X proper isNat X -> isNat proper X 0 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 1 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 1 + 1X >= 1 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 1X >= 1 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 1X >= 1 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 2 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 2 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 1 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 2 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 2 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 2 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 1V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 2 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1} SCC (2): Strict: {active# U12(X1, X2, X3) -> active# X1, active# U11(X1, X2, X3) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = 0, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = x0, [isNatKind](x0) = 0, [active](x0) = 0, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = x0 + 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U11(X1, X2, X3) -> active# X1 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 active# U12(X1, X2, X3) -> active# X1 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 1 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 1 + 0X proper isNat X -> isNat proper X 0 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 2 + 1X >= 2 + 1X s mark X -> mark s X 1 + 1X >= 1 + 1X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 1X >= 1 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 1X >= 1 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 2 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 2 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 SCCS (1): Scc: {active# U12(X1, X2, X3) -> active# X1} SCC (1): Strict: {active# U12(X1, X2, X3) -> active# X1} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [active#](x0) = x0 Strict: active# U12(X1, X2, X3) -> active# X1 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: {U32# mark X -> U32# X, U32# ok X -> U32# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = 0, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = x0, [isNatKind](x0) = 0, [active](x0) = 0, [isNat](x0) = x0 + 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [U32#](x0) = x0 Strict: U32# ok X -> U32# X 1 + 1X >= 0 + 1X U32# mark X -> U32# X 0 + 1X >= 0 + 1X Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 1 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 1 + 0X proper isNat X -> isNat proper X 0 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 1X >= 1 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 1X >= 1 + 1X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 2 + 1N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 2 + 1V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 2 + 1V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 SCCS (1): Scc: {U32# mark X -> U32# X} SCC (1): Strict: {U32# mark X -> U32# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U32#](x0) = x0 Strict: U32# mark X -> U32# X 1 + 1X >= 0 + 1X Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: {U23# mark X -> U23# X, U23# ok X -> U23# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = 0, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = x0, [isNatKind](x0) = 0, [active](x0) = 0, [isNat](x0) = x0 + 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [U23#](x0) = x0 Strict: U23# ok X -> U23# X 1 + 1X >= 0 + 1X U23# mark X -> U23# X 0 + 1X >= 0 + 1X Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 1 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 1 + 0X proper isNat X -> isNat proper X 0 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 1X >= 1 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 1X >= 1 + 1X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 2 + 1N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 2 + 1V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 2 + 1V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 SCCS (1): Scc: {U23# mark X -> U23# X} SCC (1): Strict: {U23# mark X -> U23# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U23#](x0) = x0 Strict: U23# mark X -> U23# X 1 + 1X >= 0 + 1X Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: {U16# mark X -> U16# X, U16# ok X -> U16# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = 0, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = x0, [isNatKind](x0) = 0, [active](x0) = 0, [isNat](x0) = x0 + 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [U16#](x0) = x0 Strict: U16# ok X -> U16# X 1 + 1X >= 0 + 1X U16# mark X -> U16# X 0 + 1X >= 0 + 1X Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 1 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 1 + 0X proper isNat X -> isNat proper X 0 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 1X >= 1 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 1X >= 1 + 1X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 2 + 1N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 2 + 1V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 2 + 1V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 SCCS (1): Scc: {U16# mark X -> U16# X} SCC (1): Strict: {U16# mark X -> U16# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U16#](x0) = x0 Strict: U16# mark X -> U16# X 1 + 1X >= 0 + 1X Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: {U41# mark X -> U41# X, U41# ok X -> U41# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = 0, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = x0, [isNatKind](x0) = 0, [active](x0) = 0, [isNat](x0) = x0 + 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [U41#](x0) = x0 Strict: U41# ok X -> U41# X 1 + 1X >= 0 + 1X U41# mark X -> U41# X 0 + 1X >= 0 + 1X Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 1 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 1 + 0X proper isNat X -> isNat proper X 0 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 1X >= 1 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 1X >= 1 + 1X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 2 + 1N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 2 + 1V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 2 + 1V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 SCCS (1): Scc: {U41# mark X -> U41# X} SCC (1): Strict: {U41# mark X -> U41# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U41#](x0) = x0 Strict: U41# mark X -> U41# X 1 + 1X >= 0 + 1X Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (3): Strict: { plus#(X1, mark X2) -> plus#(X1, X2), plus#(mark X1, X2) -> plus#(X1, X2), plus#(ok X1, ok X2) -> plus#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = 0, [U11](x0, x1, x2) = 0, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = 0, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = 0, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = x0 + 1, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 1, [0] = 1, [plus#](x0, x1) = x0 + 1 Strict: plus#(ok X1, ok X2) -> plus#(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 plus#(mark X1, X2) -> plus#(X1, X2) 2 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 plus#(X1, mark X2) -> plus#(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 1 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 1 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 1 + 0X proper isNat X -> isNat proper X 0 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 2 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 1 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 1 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 1 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 1 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 2 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 1 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 2 active U41 X -> U41 active X 0 + 0X >= 1 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 1 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 2 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 2 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 1 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 2 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 2 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 2 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 SCCS (1): Scc: {plus#(X1, mark X2) -> plus#(X1, X2)} SCC (1): Strict: {plus#(X1, mark X2) -> plus#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [plus#](x0, x1) = x0 Strict: plus#(X1, mark X2) -> plus#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U51#(mark X1, X2) -> U51#(X1, X2), U51#(ok X1, ok X2) -> U51#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U51#](x0, x1) = x0 Strict: U51#(ok X1, ok X2) -> U51#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U51#(mark X1, X2) -> U51#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 2 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 2 + 0X proper U23 X -> U23 proper X 1 + 0X >= 2 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 2 + 0X proper isNat X -> isNat proper X 1 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 2 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U51#(mark X1, X2) -> U51#(X1, X2)} SCC (1): Strict: {U51#(mark X1, X2) -> U51#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U51#](x0, x1) = x0 Strict: U51#(mark X1, X2) -> U51#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U52#(mark X1, X2) -> U52#(X1, X2), U52#(ok X1, ok X2) -> U52#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U52#](x0, x1) = x0 Strict: U52#(ok X1, ok X2) -> U52#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U52#(mark X1, X2) -> U52#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 2 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 2 + 0X proper U23 X -> U23 proper X 1 + 0X >= 2 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 2 + 0X proper isNat X -> isNat proper X 1 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 2 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U52#(mark X1, X2) -> U52#(X1, X2)} SCC (1): Strict: {U52#(mark X1, X2) -> U52#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U52#](x0, x1) = x0 Strict: U52#(mark X1, X2) -> U52#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U15#(mark X1, X2) -> U15#(X1, X2), U15#(ok X1, ok X2) -> U15#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U15#](x0, x1) = x0 Strict: U15#(ok X1, ok X2) -> U15#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U15#(mark X1, X2) -> U15#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 2 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 2 + 0X proper U23 X -> U23 proper X 1 + 0X >= 2 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 2 + 0X proper isNat X -> isNat proper X 1 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 2 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U15#(mark X1, X2) -> U15#(X1, X2)} SCC (1): Strict: {U15#(mark X1, X2) -> U15#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U15#](x0, x1) = x0 Strict: U15#(mark X1, X2) -> U15#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U31#(mark X1, X2) -> U31#(X1, X2), U31#(ok X1, ok X2) -> U31#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U31#](x0, x1) = x0 Strict: U31#(ok X1, ok X2) -> U31#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U31#(mark X1, X2) -> U31#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 2 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 2 + 0X proper U23 X -> U23 proper X 1 + 0X >= 2 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 2 + 0X proper isNat X -> isNat proper X 1 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 2 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U31#(mark X1, X2) -> U31#(X1, X2)} SCC (1): Strict: {U31#(mark X1, X2) -> U31#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U31#](x0, x1) = x0 Strict: U31#(mark X1, X2) -> U31#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: {s# mark X -> s# X, s# ok X -> s# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + x1, [U11](x0, x1, x2) = 0, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = 0, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = 0, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = 0, [U51](x0, x1) = 0, [plus](x0, x1) = 1, [mark](x0) = x0, [isNatKind](x0) = 0, [active](x0) = 0, [isNat](x0) = x0 + 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = 0, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = 0, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 1, [s#](x0) = x0 Strict: s# ok X -> s# X 1 + 1X >= 0 + 1X s# mark X -> s# X 0 + 1X >= 0 + 1X Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 0 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 0 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U41 X -> U41 proper X 0 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 0 + 0X >= 0 + 0X proper U23 X -> U23 proper X 0 + 0X >= 1 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U16 X -> U16 proper X 0 + 0X >= 1 + 0X proper isNat X -> isNat proper X 0 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 0 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 0 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 0 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 0 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U32 ok X -> ok U32 X 0 + 0X >= 1 + 0X U32 mark X -> mark U32 X 0 + 0X >= 0 + 0X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 1 + 1X >= 1 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 1 + 1X >= 1 + 1X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 1 + 1X1 + 0X2 >= 1 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 0 + 0N >= 0 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active s X -> s active X 0 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 0 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 0 + 0N + 0M >= 0 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 0 + 0N + 0M >= 2 + 1N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 0 + 0N >= 0 + 0N active U51(X1, X2) -> U51(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U52(tt(), N) -> mark N 0 + 0N >= 0 + 1N active U52(X1, X2) -> U52(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U41 tt() -> mark tt() 0 >= 0 active U41 X -> U41 active X 0 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 0 + 0V2 >= 0 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 0 >= 0 active U32 X -> U32 active X 0 + 0X >= 0 + 0X active U23 tt() -> mark tt() 0 >= 0 active U23 X -> U23 active X 0 + 0X >= 1 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 0 + 0V1 >= 2 + 1V1 active U22(X1, X2) -> U22(active X1, X2) 0 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U16 tt() -> mark tt() 0 >= 0 active U16 X -> U16 active X 0 + 0X >= 1 + 0X active isNat 0() -> mark tt() 0 >= 0 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 0 + 0V1 >= 0 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 0 + 0V2 >= 2 + 1V2 active U15(X1, X2) -> U15(active X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 0 + 0V1 + 0V2 >= 2 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 1V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 0 >= 0 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 0 + 0V1 >= 0 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 0 + 0V1 + 0V2 >= 0 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 1X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 1 + 1X1 + 0X2 + 1X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 0 + 1X1 + 0X2 + 1X3 >= 0 + 1X1 + 0X2 + 1X3 SCCS (1): Scc: {s# mark X -> s# X} SCC (1): Strict: {s# mark X -> s# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [s#](x0) = x0 Strict: s# mark X -> s# X 1 + 1X >= 0 + 1X Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U22#(mark X1, X2) -> U22#(X1, X2), U22#(ok X1, ok X2) -> U22#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U22#](x0, x1) = x0 Strict: U22#(ok X1, ok X2) -> U22#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U22#(mark X1, X2) -> U22#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 2 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 2 + 0X proper U23 X -> U23 proper X 1 + 0X >= 2 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 2 + 0X proper isNat X -> isNat proper X 1 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 2 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U22#(mark X1, X2) -> U22#(X1, X2)} SCC (1): Strict: {U22#(mark X1, X2) -> U22#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U22#](x0, x1) = x0 Strict: U22#(mark X1, X2) -> U22#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U21#(mark X1, X2) -> U21#(X1, X2), U21#(ok X1, ok X2) -> U21#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U21#](x0, x1) = x0 Strict: U21#(ok X1, ok X2) -> U21#(X1, X2) 1 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 U21#(mark X1, X2) -> U21#(X1, X2) 0 + 0X1 + 1X2 >= 0 + 0X1 + 1X2 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 2 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 2 + 0X proper U23 X -> U23 proper X 1 + 0X >= 2 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 2 + 0X proper isNat X -> isNat proper X 1 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 2 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 0N + 0M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U21#(mark X1, X2) -> U21#(X1, X2)} SCC (1): Strict: {U21#(mark X1, X2) -> U21#(X1, X2)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U21#](x0, x1) = x0 Strict: U21#(mark X1, X2) -> U21#(X1, X2) 1 + 1X1 + 0X2 >= 0 + 1X1 + 0X2 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U11#(mark X1, X2, X3) -> U11#(X1, X2, X3), U11#(ok X1, ok X2, ok X3) -> U11#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U11#](x0, x1, x2) = x0 Strict: U11#(ok X1, ok X2, ok X3) -> U11#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U11#(mark X1, X2, X3) -> U11#(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 0X1 + 1X2 + 1X3 >= 3 + 0X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 1N + 1M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 1N + 1M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)} SCC (1): Strict: {U11#(mark X1, X2, X3) -> U11#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [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 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U14#(mark X1, X2, X3) -> U14#(X1, X2, X3), U14#(ok X1, ok X2, ok X3) -> U14#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U14#](x0, x1, x2) = x0 Strict: U14#(ok X1, ok X2, ok X3) -> U14#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U14#(mark X1, X2, X3) -> U14#(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 0X1 + 1X2 + 1X3 >= 3 + 0X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 1N + 1M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 1N + 1M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U14#(mark X1, X2, X3) -> U14#(X1, X2, X3)} SCC (1): Strict: {U14#(mark X1, X2, X3) -> U14#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U14#](x0, x1, x2) = x0 Strict: U14#(mark X1, X2, X3) -> U14#(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U12#(mark X1, X2, X3) -> U12#(X1, X2, X3), U12#(ok X1, ok X2, ok X3) -> U12#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U12#](x0, x1, x2) = x0 Strict: U12#(ok X1, ok X2, ok X3) -> U12#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U12#(mark X1, X2, X3) -> U12#(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 0X1 + 1X2 + 1X3 >= 3 + 0X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 1N + 1M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 1N + 1M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U12#(mark X1, X2, X3) -> U12#(X1, X2, X3)} SCC (1): Strict: {U12#(mark X1, X2, X3) -> U12#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U12#](x0, x1, x2) = x0 Strict: U12#(mark X1, X2, X3) -> U12#(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U13#(mark X1, X2, X3) -> U13#(X1, X2, X3), U13#(ok X1, ok X2, ok X3) -> U13#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U13#](x0, x1, x2) = x0 Strict: U13#(ok X1, ok X2, ok X3) -> U13#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U13#(mark X1, X2, X3) -> U13#(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 0X1 + 1X2 + 1X3 >= 3 + 0X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 1N + 1M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 1N + 1M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U13#(mark X1, X2, X3) -> U13#(X1, X2, X3)} SCC (1): Strict: {U13#(mark X1, X2, X3) -> U13#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U13#](x0, x1, x2) = x0 Strict: U13#(mark X1, X2, X3) -> U13#(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (1): Strict: {isNat# ok X -> isNat# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = 1, [U51](x0, x1) = x0 + x1 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [isNat#](x0) = x0 Strict: isNat# ok X -> isNat# X 1 + 1X >= 0 + 1X Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 0X proper 0() -> ok 0() 1 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 3 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 3 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 1 + 0X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 1 + 0X >= 2 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 0X >= 2 + 0X U32 mark X -> mark U32 X 1 + 0X >= 2 + 0X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 2N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 2 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 1N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 0X >= 1 + 0X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (1): Strict: {isNatKind# ok X -> isNatKind# X} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = 1, [U51](x0, x1) = x0 + x1 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [isNatKind#](x0) = x0 Strict: isNatKind# ok X -> isNatKind# X 1 + 1X >= 0 + 1X Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 0X proper 0() -> ok 0() 1 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 3 + 0X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 1 + 0X1 + 0X2 >= 3 + 0X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 1 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 1 + 0X >= 1 + 0X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 1 + 0X >= 2 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 2 + 0X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 3 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 1 + 0X >= 2 + 0X U32 mark X -> mark U32 X 1 + 0X >= 2 + 0X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 2N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 2 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 1N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 1X2 >= 2 + 1X1 + 1X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 0X >= 1 + 0X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U61#(mark X1, X2, X3) -> U61#(X1, X2, X3), U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U61#](x0, x1, x2) = x0 Strict: U61#(ok X1, ok X2, ok X3) -> U61#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U61#(mark X1, X2, X3) -> U61#(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 0X1 + 1X2 + 1X3 >= 3 + 0X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 1N + 1M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 1N + 1M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)} SCC (1): Strict: {U61#(mark X1, X2, X3) -> U61#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U61#](x0, x1, x2) = x0 Strict: U61#(mark X1, X2, X3) -> U61#(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U64#(mark X1, X2, X3) -> U64#(X1, X2, X3), U64#(ok X1, ok X2, ok X3) -> U64#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U64#](x0, x1, x2) = x0 Strict: U64#(ok X1, ok X2, ok X3) -> U64#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U64#(mark X1, X2, X3) -> U64#(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 0X1 + 1X2 + 1X3 >= 3 + 0X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 1N + 1M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 1N + 1M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U64#(mark X1, X2, X3) -> U64#(X1, X2, X3)} SCC (1): Strict: {U64#(mark X1, X2, X3) -> U64#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U64#](x0, x1, x2) = x0 Strict: U64#(mark X1, X2, X3) -> U64#(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U62#(mark X1, X2, X3) -> U62#(X1, X2, X3), U62#(ok X1, ok X2, ok X3) -> U62#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U62#](x0, x1, x2) = x0 Strict: U62#(ok X1, ok X2, ok X3) -> U62#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U62#(mark X1, X2, X3) -> U62#(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 0X1 + 1X2 + 1X3 >= 3 + 0X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 1N + 1M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 1N + 1M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U62#(mark X1, X2, X3) -> U62#(X1, X2, X3)} SCC (1): Strict: {U62#(mark X1, X2, X3) -> U62#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U62#](x0, x1, x2) = x0 Strict: U62#(mark X1, X2, X3) -> U62#(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed SCC (2): Strict: { U63#(mark X1, X2, X3) -> U63#(X1, X2, X3), U63#(ok X1, ok X2, ok X3) -> U63#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = x0 + 1, [U14](x0, x1, x2) = x0 + 1, [U62](x0, x1, x2) = x0 + 1, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + 1, [U64](x0, x1, x2) = x0 + x1 + 1, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = x0 + 1, [U31](x0, x1) = x0 + 1, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 0, [mark](x0) = x0 + 1, [isNatKind](x0) = x0 + 1, [active](x0) = x0 + 1, [isNat](x0) = 1, [U16](x0) = x0 + 1, [U23](x0) = x0 + 1, [U32](x0) = x0 + 1, [U41](x0) = x0 + 1, [s](x0) = 0, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = 0, [tt] = 0, [0] = 0, [U63#](x0, x1, x2) = x0 Strict: U63#(ok X1, ok X2, ok X3) -> U63#(X1, X2, X3) 1 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 U63#(mark X1, X2, X3) -> U63#(X1, X2, X3) 0 + 0X1 + 0X2 + 1X3 >= 0 + 0X1 + 0X2 + 1X3 Weak: top ok X -> top active X 0 + 0X >= 0 + 0X top mark X -> top proper X 0 + 0X >= 0 + 0X proper 0() -> ok 0() 1 >= 1 proper plus(X1, X2) -> plus(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper s X -> s proper X 1 + 0X >= 0 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 2 + 0X1 + 1X2 + 1X3 >= 3 + 0X1 + 1X2 + 1X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 2 + 1X >= 2 + 1X proper U31(X1, X2) -> U31(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 2 + 1X >= 2 + 1X proper U21(X1, X2) -> U21(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 2 + 1X >= 2 + 1X proper isNat X -> isNat proper X 2 + 0X >= 1 + 0X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 2 + 1X >= 2 + 1X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 s ok X -> ok s X 0 + 0X >= 1 + 0X s mark X -> mark s X 0 + 0X >= 1 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 3 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 0X1 + 1X2 + 1X3 >= 2 + 0X1 + 1X2 + 1X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 2 + 1X >= 2 + 1X U41 mark X -> mark U41 X 2 + 1X >= 2 + 1X U31(ok X1, ok X2) -> ok U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 2 + 1X >= 2 + 1X U23 mark X -> mark U23 X 2 + 1X >= 2 + 1X U21(ok X1, ok X2) -> ok U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 2 + 1X >= 2 + 1X U16 mark X -> mark U16 X 2 + 1X >= 2 + 1X isNat ok X -> ok isNat X 1 + 0X >= 2 + 0X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 1 + 0N >= 3 + 0N active plus(N, s M) -> mark U61(isNat M, M, N) 1 + 0N + 0M >= 3 + 0N + 0M active s X -> s active X 1 + 0X >= 0 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 2 + 1N + 1M >= 1 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 2 + 0X1 + 1X2 + 1X3 >= 1 + 0X1 + 1X2 + 1X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 0N + 0M >= 2 + 1N + 1M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 2 + 0N + 0M >= 3 + 0N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 3 + 1N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 2 >= 1 active U41 X -> U41 active X 2 + 1X >= 2 + 1X active U31(tt(), V2) -> mark U32 isNatKind V2 2 + 0V2 >= 3 + 1V2 active U31(X1, X2) -> U31(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 2 >= 1 active U23 X -> U23 active X 2 + 1X >= 2 + 1X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U21(X1, X2) -> U21(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 3 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 2 >= 1 active U16 X -> U16 active X 2 + 1X >= 2 + 1X active isNat 0() -> mark tt() 2 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 2 + 0V1 >= 3 + 1V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 3 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 2 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 2 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 2 + 0V1 >= 3 + 1V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 3 + 0V1 + 1V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 2 + 1X >= 2 + 1X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 SCCS (1): Scc: {U63#(mark X1, X2, X3) -> U63#(X1, X2, X3)} SCC (1): Strict: {U63#(mark X1, X2, X3) -> U63#(X1, X2, X3)} Weak: { U12(mark X1, X2, X3) -> mark U12(X1, X2, X3), U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3), isNatKind ok X -> ok isNatKind X, active U12(X1, X2, X3) -> U12(active X1, X2, X3), active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2), active isNatKind s V1 -> mark U41 isNatKind V1, active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2), active isNatKind 0() -> mark tt(), active U11(X1, X2, X3) -> U11(active X1, X2, X3), active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2), active U13(X1, X2, X3) -> U13(active X1, X2, X3), active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2), active U14(X1, X2, X3) -> U14(active X1, X2, X3), active U14(tt(), V1, V2) -> mark U15(isNat V1, V2), active U15(X1, X2) -> U15(active X1, X2), active U15(tt(), V2) -> mark U16 isNat V2, active isNat s V1 -> mark U21(isNatKind V1, V1), active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2), active isNat 0() -> mark tt(), active U16 X -> U16 active X, active U16 tt() -> mark tt(), active U22(X1, X2) -> U22(active X1, X2), active U22(tt(), V1) -> mark U23 isNat V1, active U21(X1, X2) -> U21(active X1, X2), active U21(tt(), V1) -> mark U22(isNatKind V1, V1), active U23 X -> U23 active X, active U23 tt() -> mark tt(), active U32 X -> U32 active X, active U32 tt() -> mark tt(), active U31(X1, X2) -> U31(active X1, X2), active U31(tt(), V2) -> mark U32 isNatKind V2, active U41 X -> U41 active X, active U41 tt() -> mark tt(), active U52(X1, X2) -> U52(active X1, X2), active U52(tt(), N) -> mark N, active U51(X1, X2) -> U51(active X1, X2), active U51(tt(), N) -> mark U52(isNatKind N, N), active U62(X1, X2, X3) -> U62(active X1, X2, X3), active U62(tt(), M, N) -> mark U63(isNat N, M, N), active U61(X1, X2, X3) -> U61(active X1, X2, X3), active U61(tt(), M, N) -> mark U62(isNatKind M, M, N), active U63(X1, X2, X3) -> U63(active X1, X2, X3), active U63(tt(), M, N) -> mark U64(isNatKind N, M, N), active U64(X1, X2, X3) -> U64(active X1, X2, X3), active U64(tt(), M, N) -> mark s plus(N, M), active s X -> s active X, active plus(N, s M) -> mark U61(isNat M, M, N), active plus(N, 0()) -> mark U51(isNat N, N), active plus(X1, X2) -> plus(X1, active X2), active plus(X1, X2) -> plus(active X1, X2), U11(mark X1, X2, X3) -> mark U11(X1, X2, X3), U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3), U13(mark X1, X2, X3) -> mark U13(X1, X2, X3), U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3), U14(mark X1, X2, X3) -> mark U14(X1, X2, X3), U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3), U15(mark X1, X2) -> mark U15(X1, X2), U15(ok X1, ok X2) -> ok U15(X1, X2), isNat ok X -> ok isNat X, U16 mark X -> mark U16 X, U16 ok X -> ok U16 X, U22(mark X1, X2) -> mark U22(X1, X2), U22(ok X1, ok X2) -> ok U22(X1, X2), U21(mark X1, X2) -> mark U21(X1, X2), U21(ok X1, ok X2) -> ok U21(X1, X2), U23 mark X -> mark U23 X, U23 ok X -> ok U23 X, U32 mark X -> mark U32 X, U32 ok X -> ok U32 X, U31(mark X1, X2) -> mark U31(X1, X2), U31(ok X1, ok X2) -> ok U31(X1, X2), U41 mark X -> mark U41 X, U41 ok X -> ok U41 X, U52(mark X1, X2) -> mark U52(X1, X2), U52(ok X1, ok X2) -> ok U52(X1, X2), U51(mark X1, X2) -> mark U51(X1, X2), U51(ok X1, ok X2) -> ok U51(X1, X2), U62(mark X1, X2, X3) -> mark U62(X1, X2, X3), U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3), U61(mark X1, X2, X3) -> mark U61(X1, X2, X3), U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3), U63(mark X1, X2, X3) -> mark U63(X1, X2, X3), U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3), U64(mark X1, X2, X3) -> mark U64(X1, X2, X3), U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3), s mark X -> mark s X, s ok X -> ok s X, plus(X1, mark X2) -> mark plus(X1, X2), plus(mark X1, X2) -> mark plus(X1, X2), plus(ok X1, ok X2) -> ok plus(X1, X2), proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3), proper isNatKind X -> isNatKind proper X, proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3), proper tt() -> ok tt(), proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3), proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3), proper U15(X1, X2) -> U15(proper X1, proper X2), proper isNat X -> isNat proper X, proper U16 X -> U16 proper X, proper U22(X1, X2) -> U22(proper X1, proper X2), proper U21(X1, X2) -> U21(proper X1, proper X2), proper U23 X -> U23 proper X, proper U32 X -> U32 proper X, proper U31(X1, X2) -> U31(proper X1, proper X2), proper U41 X -> U41 proper X, proper U52(X1, X2) -> U52(proper X1, proper X2), proper U51(X1, X2) -> U51(proper X1, proper X2), proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3), proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3), proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3), proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3), proper s X -> s proper X, proper plus(X1, X2) -> plus(proper X1, proper X2), proper 0() -> ok 0(), top mark X -> top proper X, top ok X -> top active X} POLY: Mode: weak, max_in=1, output_bits=-1, dnum=1, ur=true Interpretation: [U12](x0, x1, x2) = x0 + 1, [U11](x0, x1, x2) = x0 + 1, [U13](x0, x1, x2) = 0, [U14](x0, x1, x2) = 0, [U62](x0, x1, x2) = 0, [U61](x0, x1, x2) = x0 + 1, [U63](x0, x1, x2) = x0 + x1 + 1, [U64](x0, x1, x2) = x0, [U15](x0, x1) = x0 + 1, [U22](x0, x1) = x0 + 1, [U21](x0, x1) = 0, [U31](x0, x1) = 0, [U52](x0, x1) = x0 + 1, [U51](x0, x1) = x0 + 1, [plus](x0, x1) = 1, [mark](x0) = x0 + 1, [isNatKind](x0) = 0, [active](x0) = x0 + 1, [isNat](x0) = x0 + 1, [U16](x0) = 0, [U23](x0) = 0, [U32](x0) = x0 + 1, [U41](x0) = 0, [s](x0) = 1, [proper](x0) = x0 + 1, [ok](x0) = x0 + 1, [top](x0) = x0 + 1, [tt] = 0, [0] = 1, [U63#](x0, x1, x2) = x0 Strict: U63#(mark X1, X2, X3) -> U63#(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 0 + 1X1 + 0X2 + 0X3 Weak: top ok X -> top active X 2 + 1X >= 2 + 1X top mark X -> top proper X 2 + 1X >= 2 + 1X proper 0() -> ok 0() 2 >= 2 proper plus(X1, X2) -> plus(proper X1, proper X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 proper s X -> s proper X 2 + 0X >= 1 + 0X proper U64(X1, X2, X3) -> U64(proper X1, proper X2, proper X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 proper U63(X1, X2, X3) -> U63(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 1X3 >= 3 + 1X1 + 0X2 + 1X3 proper U61(X1, X2, X3) -> U61(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper U62(X1, X2, X3) -> U62(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U51(X1, X2) -> U51(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U52(X1, X2) -> U52(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U41 X -> U41 proper X 1 + 0X >= 0 + 0X proper U31(X1, X2) -> U31(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U32 X -> U32 proper X 2 + 1X >= 2 + 1X proper U23 X -> U23 proper X 1 + 0X >= 0 + 0X proper U21(X1, X2) -> U21(proper X1, proper X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 proper U22(X1, X2) -> U22(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U16 X -> U16 proper X 1 + 0X >= 0 + 0X proper isNat X -> isNat proper X 2 + 1X >= 2 + 1X proper U15(X1, X2) -> U15(proper X1, proper X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 proper U14(X1, X2, X3) -> U14(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper U13(X1, X2, X3) -> U13(proper X1, proper X2, proper X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 proper tt() -> ok tt() 1 >= 1 proper U11(X1, X2, X3) -> U11(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 proper isNatKind X -> isNatKind proper X 1 + 0X >= 0 + 0X proper U12(X1, X2, X3) -> U12(proper X1, proper X2, proper X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 plus(ok X1, ok X2) -> ok plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(mark X1, X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 plus(X1, mark X2) -> mark plus(X1, X2) 1 + 0X1 + 0X2 >= 2 + 0X1 + 0X2 s ok X -> ok s X 1 + 0X >= 2 + 0X s mark X -> mark s X 1 + 0X >= 2 + 0X U64(ok X1, ok X2, ok X3) -> ok U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U64(mark X1, X2, X3) -> mark U64(X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 U63(ok X1, ok X2, ok X3) -> ok U63(X1, X2, X3) 3 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U63(mark X1, X2, X3) -> mark U63(X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 U61(ok X1, ok X2, ok X3) -> ok U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U61(mark X1, X2, X3) -> mark U61(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U62(ok X1, ok X2, ok X3) -> ok U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U62(mark X1, X2, X3) -> mark U62(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U51(ok X1, ok X2) -> ok U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U51(mark X1, X2) -> mark U51(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(ok X1, ok X2) -> ok U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U52(mark X1, X2) -> mark U52(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U41 ok X -> ok U41 X 0 + 0X >= 1 + 0X U41 mark X -> mark U41 X 0 + 0X >= 1 + 0X U31(ok X1, ok X2) -> ok U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U31(mark X1, X2) -> mark U31(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U32 ok X -> ok U32 X 2 + 1X >= 2 + 1X U32 mark X -> mark U32 X 2 + 1X >= 2 + 1X U23 ok X -> ok U23 X 0 + 0X >= 1 + 0X U23 mark X -> mark U23 X 0 + 0X >= 1 + 0X U21(ok X1, ok X2) -> ok U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U21(mark X1, X2) -> mark U21(X1, X2) 0 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 U22(ok X1, ok X2) -> ok U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U22(mark X1, X2) -> mark U22(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U16 ok X -> ok U16 X 0 + 0X >= 1 + 0X U16 mark X -> mark U16 X 0 + 0X >= 1 + 0X isNat ok X -> ok isNat X 2 + 1X >= 2 + 1X U15(ok X1, ok X2) -> ok U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U15(mark X1, X2) -> mark U15(X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 U14(ok X1, ok X2, ok X3) -> ok U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U14(mark X1, X2, X3) -> mark U14(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(ok X1, ok X2, ok X3) -> ok U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U13(mark X1, X2, X3) -> mark U13(X1, X2, X3) 0 + 0X1 + 0X2 + 0X3 >= 1 + 0X1 + 0X2 + 0X3 U11(ok X1, ok X2, ok X3) -> ok U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U11(mark X1, X2, X3) -> mark U11(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active plus(X1, X2) -> plus(active X1, X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(X1, X2) -> plus(X1, active X2) 2 + 0X1 + 0X2 >= 1 + 0X1 + 0X2 active plus(N, 0()) -> mark U51(isNat N, N) 2 + 0N >= 3 + 1N active plus(N, s M) -> mark U61(isNat M, M, N) 2 + 0N + 0M >= 3 + 0N + 1M active s X -> s active X 2 + 0X >= 1 + 0X active U64(tt(), M, N) -> mark s plus(N, M) 1 + 0N + 0M >= 2 + 0N + 0M active U64(X1, X2, X3) -> U64(active X1, X2, X3) 1 + 1X1 + 0X2 + 0X3 >= 1 + 1X1 + 0X2 + 0X3 active U63(tt(), M, N) -> mark U64(isNatKind N, M, N) 2 + 1N + 0M >= 1 + 0N + 0M active U63(X1, X2, X3) -> U63(active X1, X2, X3) 2 + 1X1 + 0X2 + 1X3 >= 2 + 1X1 + 0X2 + 1X3 active U61(tt(), M, N) -> mark U62(isNatKind M, M, N) 2 + 0N + 0M >= 1 + 0N + 0M active U61(X1, X2, X3) -> U61(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active U62(tt(), M, N) -> mark U63(isNat N, M, N) 1 + 0N + 0M >= 3 + 2N + 0M active U62(X1, X2, X3) -> U62(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U51(tt(), N) -> mark U52(isNatKind N, N) 2 + 0N >= 2 + 0N active U51(X1, X2) -> U51(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U52(tt(), N) -> mark N 2 + 0N >= 1 + 1N active U52(X1, X2) -> U52(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U41 tt() -> mark tt() 1 >= 1 active U41 X -> U41 active X 1 + 0X >= 0 + 0X active U31(tt(), V2) -> mark U32 isNatKind V2 1 + 0V2 >= 2 + 0V2 active U31(X1, X2) -> U31(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U32 tt() -> mark tt() 2 >= 1 active U32 X -> U32 active X 2 + 1X >= 2 + 1X active U23 tt() -> mark tt() 1 >= 1 active U23 X -> U23 active X 1 + 0X >= 0 + 0X active U21(tt(), V1) -> mark U22(isNatKind V1, V1) 1 + 0V1 >= 2 + 0V1 active U21(X1, X2) -> U21(active X1, X2) 1 + 0X1 + 0X2 >= 0 + 0X1 + 0X2 active U22(tt(), V1) -> mark U23 isNat V1 2 + 0V1 >= 1 + 0V1 active U22(X1, X2) -> U22(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U16 tt() -> mark tt() 1 >= 1 active U16 X -> U16 active X 1 + 0X >= 0 + 0X active isNat 0() -> mark tt() 3 >= 1 active isNat plus(V1, V2) -> mark U11(isNatKind V1, V1, V2) 3 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active isNat s V1 -> mark U21(isNatKind V1, V1) 3 + 0V1 >= 1 + 0V1 active U15(tt(), V2) -> mark U16 isNat V2 2 + 0V2 >= 1 + 0V2 active U15(X1, X2) -> U15(active X1, X2) 2 + 1X1 + 0X2 >= 2 + 1X1 + 0X2 active U14(tt(), V1, V2) -> mark U15(isNat V1, V2) 1 + 0V1 + 0V2 >= 3 + 1V1 + 0V2 active U14(X1, X2, X3) -> U14(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U13(tt(), V1, V2) -> mark U14(isNatKind V2, V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U13(X1, X2, X3) -> U13(active X1, X2, X3) 1 + 0X1 + 0X2 + 0X3 >= 0 + 0X1 + 0X2 + 0X3 active U11(tt(), V1, V2) -> mark U12(isNatKind V1, V1, V2) 2 + 0V1 + 0V2 >= 2 + 0V1 + 0V2 active U11(X1, X2, X3) -> U11(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 active isNatKind 0() -> mark tt() 1 >= 1 active isNatKind plus(V1, V2) -> mark U31(isNatKind V1, V2) 1 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active isNatKind s V1 -> mark U41 isNatKind V1 1 + 0V1 >= 1 + 0V1 active U12(tt(), V1, V2) -> mark U13(isNatKind V2, V1, V2) 2 + 0V1 + 0V2 >= 1 + 0V1 + 0V2 active U12(X1, X2, X3) -> U12(active X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 isNatKind ok X -> ok isNatKind X 0 + 0X >= 1 + 0X U12(ok X1, ok X2, ok X3) -> ok U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 U12(mark X1, X2, X3) -> mark U12(X1, X2, X3) 2 + 1X1 + 0X2 + 0X3 >= 2 + 1X1 + 0X2 + 0X3 Qed