MAYBE
Time: 0.433416
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#(ok X1, ok X2, ok X3) -> U61#(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#(ok X1, ok X2, ok X3) -> U11#(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#(ok X1, ok X2) -> U21#(X1, X2))
    (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# isNatKind s V1 -> isNatKind# V1, isNatKind# ok X -> isNatKind# X)
    (active# U11(tt(), V1, V2) -> isNatKind# V1, isNatKind# ok X -> isNatKind# X)
    (active# isNat s V1 -> 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# plus(N, s M) -> isNat# M, isNat# ok X -> isNat# X)
    (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#(mark X1, 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#(X1, mark X2) -> plus#(X1, X2))
    (active# plus(X1, X2) -> plus#(active X1, X2), plus#(mark X1, X2) -> plus#(X1, X2))
    (active# plus(X1, X2) -> plus#(active X1, X2), plus#(ok X1, ok X2) -> plus#(X1, X2))
    (active# 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.864943
    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}
      Open
     
     
     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}
      Open
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     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}
      Open
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     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}
      Open
     
     
     
     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}
      Open
     
     
     
     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}
      Open
     
     
     
     
     
     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}
      Open
     
     
     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}
      Open
     
     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}
      Open
     
     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}
      Open
     
     
     
     
     
     
     
     
     
     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}
      Open
     
     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}
      Open
     
     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}
      Open
     
     
     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}
      Open
     
     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}
      Open
     
     
     
     
     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}
      Open
     
     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}
      Open
     
     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}
      Open
     
     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}
      Open
     
     
     
     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}
      Open
     
     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}
      Open
     
     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}
      Open
     
     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}
      Open
     
     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}
      Open
     
     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}
      Open